Можно ли использовать команду eval для выполнения чего-либо с глобальной областью? Например, это приведет к ошибке:
<script>
function execute(x){
eval(x);
}
function start(){
execute("var ary = new Array()");
execute("ary.push('test');"); // This will cause exception: ary is not defined
}
</script>
<html><body onLoad="start()"></body></html>
Я знаю, что ключевое слово 'с' задает конкретную область видимости, но есть ли ключевое слово для глобальной области? Или можно определить настраиваемую область, которая позволила бы этому работать?
<script>
var scope = {};
function execute(x){
with(scope){
eval(x);
}
}
function start(){
execute("var ary = new Array()");
execute("ary.push('test');"); // This will cause exception: ary is not defined
}
</script>
<html><body onLoad="start()"></body></html>
По существу, я пытаюсь выполнить глобальную функцию выполнения...