从 Javascript 中“eval”中运行的代码访问变量

ssa*_*ngi 2 javascript

我知道根本不建议使用 eval,我也阅读了此链接。在 Eval 中设置变量 (JavaScript)

然而,这就是我想做的。假设我们在文本框中有一些代码。所以我必须获取该文本,然后找出该代码中的所有全局变量、函数和对象。我的想法是将代码包装在命名空间中,对其进行评估,然后迭代命名空间的属性以获取结果。但是,即使 eval 成功运行,我也无法访问那里定义的变量。是否有更好的解决方案或其他方法来使其正常工作。

http://jsfiddle.net/DbrEF/2/ - 这是这里的小提琴。

“var code”实际上可以是任意代码。我知道这样做不安全,但我需要它用于不同的环境。谢谢

B T*_*B T 5

在 2015 年,创建一个Function对象是你最好的选择,而不是使用eval

new Function('arg1', 'arg2', 'return arg1 + arg2')(3,4) // returns 7
Run Code Online (Sandbox Code Playgroud)