使用 ES6 导入/导出时 nodejs 中“this”的含义

索米亚

我有一个 javascript 文件

  1. 当我使用 es6 导入/导出并执行
console.log(this); // undefined

它给出了未定义的。

  1. 当我使用 require/module.exports 执行相同的操作时
console.log(this); // {}

它给出了一个空的 module.exports 对象。

我的问题是 - 为什么在 es6 导入/导出的情况下给出 undefined 。

贝尔吉

在 ES6 模块(使用exportimport声明)中,this关键字默认为值undefined- 没有它应该引用的合理对象。这也让我们认识到更多的错误,其中您不小心引用this了模块的 的(例如,在对象字面量中编写箭头函数)但意味着具有动态this或其他东西 - 访问属性时代码中断undefined,而不是访问某个其他对象的属性。
如果要从模块引用全局对象,请显式使用globalThis

在 CommonJS 模块(使用module.exportsand require())中,它指的是模块对象 - 请参阅nodejs 模块中的“this”是什么意思?node.js 模块和函数中“this”的含义

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章