【问题标题】:this is Arrow functions in browser is global but not in NodeJS这是浏览器中的箭头函数是全局的,但在 NodeJS 中不是
【发布时间】:2021-09-27 05:28:30
【问题描述】:

在谷歌浏览器中

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

ExampleObject5()

打印正确

但在节点中

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

ExampleObject5()

打印错误

【问题讨论】:

  • 你应该修改标题,因为它没有意义。
  • 请参阅:globalThis 以整合跨上下文的全局访问

标签: javascript ecmascript-6 this arrow-functions


【解决方案1】:

通过阅读NodeJS Documentation

全球

全局命名空间对象。

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

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

【讨论】:

    猜你喜欢
    • 2013-06-16
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2011-06-09
    • 2016-09-26
    • 2016-12-23
    相关资源
    最近更新 更多