这是因为在浏览器环境中,使用eval()函数执行的代码默认是在全局作用域下执行的,而不是在当前作用域下执行。因此,函数myFunc()定义在全局作用域中,而不是当前作用域中。

要在当前作用域中执行代码,可以使用其他方式,例如使用立即执行函数表达式(IIFE):

var abc = `(function() { 
   function myFunc() { 
      alert('这是测试通知回调'); 
   } 
   myFunc();
})();`;

eval(abc);

这样就可以在当前作用域中执行代码并弹出提示。

Eval 函数执行代码的作用域问题及解决方法

原文地址: https://www.cveoy.top/t/topic/qfPI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录