Разрабатываю сейчас обработку ошибок для InfoPath.
Соответственно родилась и реализация обёртки javascript функции eval():
function Eval(strForEvalute)
{
try
{
return eval(strForEvalute);
}
catch(e)
{
throw new EvalutionException(e);
}
}
в тесте пытался выполнить встраивание определения переменных с помощью
Eval("var some = 5" ) -
переменная some после выполнения eval - undefined... Что такое?
Что ж, RTFM!
Полез в доку - и в первой же строчке посвящённой eval читаю: "Функция eval выполняет строку-аргумент и подставлает полученное значение вместо себя."
"вместо себя" - это выходит, что моя some всё-таки не undefined, а просто она определена в качестве private внутри Eval()
И что теперь делать?
Отказаться от обёртки?
PS. приведённый пример "var some = 5" - только для упрощения понимания, реальная задача намного сложнее.