var abc = function myFunc alert这是测试通知回调;;evalabc;结果并没有弹出提示这是为什么?
这是因为在浏览器环境中,使用eval()函数执行的代码默认是在全局作用域下执行的,而不是在当前作用域下执行。因此,函数myFunc()定义在全局作用域中,而不是当前作用域中。
要在当前作用域中执行代码,可以使用其他方式,例如使用立即执行函数表达式(IIFE):
var abc = `(function() {
function myFunc() {
alert("这是测试通知回调");
}
myFunc();
})();`;
eval(abc);
这样就可以在当前作用域中执行代码并弹出提示。
原文地址: https://www.cveoy.top/t/topic/iyER 著作权归作者所有。请勿转载和采集!