有什么方法可以使下面的代码正常工作吗?
(function(){
var n = "abc";
(new Function("return alert(n);"))();
})();
如果我在浏览器中运行代码,结果是:“Uncaught ReferenceError: n is not defined”。
此外,我还需要在“新函数”中访问一些其他变量,如“n”。
请帮忙, 谢谢
最佳答案
当您使用new Function
方法(顺便说一下,它类似于eval
)时,您的代码将在全局 范围内执行! n
只存在于那个匿名函数中,它不是全局的。
除非 100% 必要,否则您不应该使用 new Function
。
(function(){
var n = "abc";
(function(){return alert(n);})();
})();
附言alert
返回 undefined
所以 return alert()
没有做任何有用的事情。
关于JavaScript 新函数作用域 ReferenceError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592127/