【发布时间】:2015-04-19 22:57:36
【问题描述】:
有什么方法可以让下面的代码正常工作吗?
(function(){
var n = "abc";
(new Function("return alert(n);"))();
})();
如果我在浏览器中运行代码,结果是:“Uncaught ReferenceError: n is not defined”。
另外,我还需要在“新函数”中也可以访问一些其他变量,例如“n”。
请帮忙, 谢谢
【问题讨论】:
-
在这种情况下你为什么要使用
new Function? MDN documentation 中有一个大大的黄色注释,不容忽视:"注意: 使用Function构造函数创建的函数不会为其创建上下文创建闭包;它们总是在全局范围内创建。[...]"
标签: javascript function scope referenceerror