获取对 JavaScript 中 eval() 期间创建的局部变量的引用
在下面的场景中,如果我不知道变量的名称,如何获取对 eval() 期间声明的变量的引用?
function test() {
eval("var myVariable = 5");
var locals = magic() // TODO What should we do here?
alert(locals["myVariable"]); // returns myVariable
}
请注意:正在评估的 JavaScript 来自受信任的来源。
In the scenario below, how can I get references to the variables declared during eval() if I do not know their names?
function test() {
eval("var myVariable = 5");
var locals = magic() // TODO What should we do here?
alert(locals["myVariable"]); // returns myVariable
}
Just a note: JavaScript being evaluated comes from a trusted source.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
eval() 在与调用者相同的范围内运行,因此这将起作用:
但是您无法确定在 eval() 调用中声明了哪些变量(如果这就是您想要的)
eval() runs in the same scope as the caller, so this will work:
But you can't determine what variables were declared in the eval() call (if that's what you want)
对我有用。
eval()
不会创建新的作用域。works for me.
eval()
does not create a new scope.简单如下:
Simple as :