首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JavaScript中指定eval()的作用域吗?

在JavaScript中指定eval()的作用域吗?
EN

Stack Overflow用户
提问于 2012-03-20 12:18:42
回答 11查看 25.3K关注 0票数 26

有没有办法在一个特定的作用域(而不是全局的)上执行eval

例如,以下代码无法工作(第二条语句中未定义a),因为它们在不同的作用域中:

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
}

有没有关于如何实现这样的事情的想法?谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9781285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档