这是浏览器中的箭头函数是全局的,但在 NodeJS 中不是

this is Arrow functions in browser is global but not in NodeJS

提问人:Pr00grammer 提问时间:7/19/2021 最后编辑:Pr00grammer 更新时间:7/19/2021 访问量:72

问:

在 Google Chrome 中

const ExampleObject5 = () => {
    console.log(this===window)
}

ExampleObject5()

打印 true

但是在节点中

const ExampleObject5 = () => {
    console.log(this===global)
}

ExampleObject5()

打印 False

JavaScript ecmascript-6 这个 箭头函数

评论

5赞 Andy 7/19/2021
您应该修改标题,因为它没有意义。
0赞 pilchard 7/19/2021
请参阅:globalThis,用于跨上下文整合全局访问

答:

1赞 Giovanni Esposito 7/19/2021 #1

通过阅读 NodeJS 文档

全球

全局命名空间对象。

在浏览器中,顶级作用域是全局作用域。这意味着 在浏览器中,如果你在全局范围内,var 会定义一个 全局变量。在 Node.js 中,这是不同的。顶级范围是 不是全局范围;var Node.js 模块中的东西将是 该模块的本地。

因此,在 Node 中,顶级作用域不是全局作用域(如浏览器),而是模块本身。