提问人:Dinh Minh Luu 提问时间:6/30/2023 最后编辑:geeky01adarshDinh Minh Luu 更新时间:7/6/2023 访问量:93
“this”关键字在 NodeJS 中未定义 [重复]
`this` keyword is undefined in NodeJS [duplicate]
问:
我无法理解 JavaScript 中的“this”关键字行为 (NodeJS - v16.19.1)。根据这个网站,全局执行上下文中的“this”关键字将引用全局对象:
// this is my entire index.js file, I run "node index.js"
// global scope
console.log(this === globalThis); // this should be true but it is false.
console.log(this); // undefined
在 WSL 2 (windows 10) 的 NodeJS (v16.19.1) 中运行它 对此有解释吗?谢谢!
答:
-1赞
geeky01adarsh
6/30/2023
#1
此行为是因为,当调用模块文件时,会合并到 GetThisBinding() 的返回值,该值返回 undefined。this
但是,如果您将在浏览器上运行相同的代码,那么它将返回 true。
评论
0赞
Bergi
6/30/2023
node.js 和浏览器都实现了相同的 ECMAScript ,为什么它们会返回任何不同的东西?GetThisBinding
0赞
geeky01adarsh
6/30/2023
@Bergi 在浏览器中,关键字从 中找到它的值,但是,ECMAScript 会为 。this
ResolveThisBinding()
global
评论
this === globalThis //true
global
globalThis