JavaScript新函数作用域ReferenceError

Joh*_*nm1 3 javascript scope function referenceerror

有没有办法让下面的代码工作?

(function(){
    var n = "abc";
    (new Function("return alert(n);"))();
})();
Run Code Online (Sandbox Code Playgroud)

如果我在浏览器中运行代码结果是:" 未捕获的ReferenceError:n未定义 ".

此外,我还需要一些其他变量,如"n",也可以在"新函数"中访问.

请帮忙,谢谢

Roc*_*mat 6

当您使用该new Function方法(eval顺便说一句)时,您的代码将在全局范围内执行! n只存在于匿名函数中,它不是全局的.

你不应该使用,new Function除非它是100%必要的.

(function(){
    var n = "abc";
    (function(){return alert(n);})();
})();
Run Code Online (Sandbox Code Playgroud)

PS alert返回undefined所以return alert()没有做任何有用的事情.