javascript - 获取对 JavaScript 中 eval() 期间创建的局部变量的引用

标签 javascript eval

在下面的场景中,如果我不知道变量的名称,如何获取对 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/

相关文章:

javascript - eval 不适用于变量

performance - javascript shell 与 pymongo 中 db.eval() 的 MongoDB 性能

javascript - 如何将变量传递给 asp.net 中的外部 JS 文件?

javascript - 为什么这个window对象没有eval函数?

ruby - 如何获取传递给 eval 方法的 block 的返回值?

带有base64编码字段的javascript eval json

javascript - 如何用 twemoji 替换 html 中的表情符号?

javascript - Vue jest 不等待 axios 发布

javascript - 按顺序排列的多个 jQuery promise

javascript - 行编辑插件: disable editing and actioncolumn delete icon