Function

您所在的位置:网站首页 function函数什么意思 Function

Function

2024-06-12 13:20| 来源: 网络整理| 查看: 265

由 Function 构造函数创建的函数不会创建当前环境的闭包,它们总是被创建于全局环境,因此在运行时它们只能访问全局变量和自己的局部变量,不能访问它们被 Function 构造函数创建时所在的作用域的变量。这一点与使用 eval() 执行创建函数的代码不同。

js// 使用 `var` 创建一个全局属性 var x = 10; function createFunction1() { const x = 20; return new Function("return x;"); // 这个 `x` 指的是全局 `x` } function createFunction2() { const x = 20; function f() { return x; // 这个 `x` 指的是上面的局部 `x` } return f; } const f1 = createFunction1(); console.log(f1()); // 10 const f2 = createFunction2(); console.log(f2()); // 20

虽然这段代码可以在浏览器中正常运行,但在 Node.js 中 f1() 会产生一个“找不到变量 x”的 ReferenceError。这是因为在 Node 中顶级作用域不是全局作用域,而 x 其实是在当前模块的作用域之中。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3