在下面的场景中,如果我不知道变量的名称,如何获取对 eval() 期间声明的变量的引用?
function test() {
eval("var myVariable = 5");
var locals = magic() // TODO What should we do here?
alert(locals["myVariable"]); // returns myVariable
}
请注意:正在评估的 JavaScript 来自受信任的来源。
最佳答案
eval() 在与调用者相同的范围内运行,因此这将起作用:
function test() {
eval("var myVariable = 5");
var locals = {};
locals.myVariable = myVariable; // TODO What should we do here?
alert(locals["myVariable"]); // returns myVariable
}
但是您无法确定 eval() 调用中声明了哪些变量(如果您想要的话)
关于javascript - 获取对 JavaScript 中 eval() 期间创建的局部变量的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3054171/