JavaScript 新函数范围 ReferenceError
JavaScript new Function scope ReferenceError
有什么方法可以使下面的代码正常工作吗?
(function(){
var n = "abc";
(new Function("return alert(n);"))();
})();
如果我 运行 浏览器结果中的代码是:“未捕获的引用错误:n 未定义 ”。
此外,我还需要一些其他变量,如 "n" 也可以在 "new Function" 中访问。
请帮忙,
谢谢
因此您需要将这些变量设为全局变量。
(function(){
window.n = "abc";
(new Function("return alert(n);"))();
})();
当您使用 new Function
方法(类似于 eval
的方式)时,您的代码将在 global 范围内执行! n
只存在于那个匿名函数中,它不是全局的。
除非 100% 必要,否则您不应该使用 new Function
。
(function(){
var n = "abc";
(function(){return alert(n);})();
})();
P.S。 alert
returns undefined
所以 return alert()
没有做任何有用的事情。
您需要将变量作为参数传递给创建的函数。
(function(){
const myVar = 1000;
(new Function("return alert(n);"))(myVar);
})();
有什么方法可以使下面的代码正常工作吗?
(function(){
var n = "abc";
(new Function("return alert(n);"))();
})();
如果我 运行 浏览器结果中的代码是:“未捕获的引用错误:n 未定义 ”。
此外,我还需要一些其他变量,如 "n" 也可以在 "new Function" 中访问。
请帮忙, 谢谢
因此您需要将这些变量设为全局变量。
(function(){
window.n = "abc";
(new Function("return alert(n);"))();
})();
当您使用 new Function
方法(类似于 eval
的方式)时,您的代码将在 global 范围内执行! n
只存在于那个匿名函数中,它不是全局的。
除非 100% 必要,否则您不应该使用 new Function
。
(function(){
var n = "abc";
(function(){return alert(n);})();
})();
P.S。 alert
returns undefined
所以 return alert()
没有做任何有用的事情。
您需要将变量作为参数传递给创建的函数。
(function(){
const myVar = 1000;
(new Function("return alert(n);"))(myVar);
})();