есть ли способ, как я могу выполнить eval () в определенной области (но НЕ глобально) ?
, например, следующий код не работает (не определено ввторое утверждение), поскольку они находятся в другой области видимости:
eval(var a = 1);
eval(alert(a));
Если возможно, я хотел бы создать область видимости на лету.например (синтаксис определенно неправильный, но только для иллюстрации идеи)
var scope1;
var scope2;
with scope1{
eval(var a = 1); eval(alert(a)); // this will alert 1
}
with scope2{
eval(var a = 1); eval(a++); eval(alert(a)); // this will alert 2
}
with scope1{
eval(a += 2); eval(alert(a)); // this will alert 3 because a is already defined in scope1
}
Есть идеи о том, как добиться чего-то подобного?Спасибо!