Метод eval (JScript)
Обновлен: Ноябрь 2007
Вычисляет код JScript и выполняет его.
function eval(codeString : String [, override : String])
Аргументы
codeString
Обязательный. Строка, содержащая допустимый код JScript.override
Необязательный. Строка, определяющая разрешения безопасности, которые применяются к коду в строке codeString.
Заметки
Функция eval обеспечивает динамическое выполнение кода JScript.
Код, переданный в метод eval, выполняется в том контексте, в котором был вызван метод eval. Обратите внимание, что новые переменные или типы, определенные в операторе eval, остаются невидимыми для содержащей его программы.
Код, переданный в метод eval, выполняется в ограниченном контексте безопасности, за исключением случая, когда в качестве второго параметра методу передается строка "unsafe". Ограниченный контекст безопасности позволяет запретить доступ к системным ресурсам, таким как файловая система, сеть или пользовательский интерфейс. При попытке доступа кода к таким ресурсам создается исключение.
Если в качестве второго параметра метода "eval" используется строка "unsafe", код, переданный методу eval, выполняется в том контексте, в котором был вызван метод. Во втором параметре учитывается регистр, то есть строка "Unsafe" или "UnSAfE" не будет переопределять ограниченный контекст безопасности.
Примечание о безопасности. |
---|
Метод eval следует использовать в небезопасном режиме только для выполнения строк кода, полученных из доверенных источников. |
Пример
В следующем примере кода инициализируется переменная mydate для проверки даты или текущей даты, в зависимости от значения переменной doTest.
var doTest : boolean = true;
var dateFn : String;
if(doTest)
dateFn = "Date(1971,3,8)";
else
dateFn = "Date()";
var mydate : Date;
eval("mydate = new "+dateFn+";");
print(mydate);
После выполнения этой программы выводится следующий результат:
Thu Apr 8 00:00:00 PDT 1971