首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在全局上下文和内部函数中的` `this`‘

问在全局上下文和内部函数中的` `this`‘
EN

Stack Overflow用户
提问于 2015-09-24 11:12:27
回答 1查看 822关注 0票数 5

根据this explanation in MDN

  • 在全局上下文中,this引用全局对象
  • 在函数上下文中,如果直接调用函数,则再次引用全局对象。

然而,以下各点:

代码语言:javascript
复制
var globalThis = this;
function a() {
    console.log(typeof this);
    console.log(typeof globalThis);
    console.log('is this the global object? '+(globalThis===this));
}

a();

..。放置在文件foo.js中会产生:

代码语言:javascript
复制
$ nodejs foo.js 
object
object
is this the global object? false
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 11:17:27

在Node.js中,我们在模块中编写的任何代码都将封装在一个函数中。您可以在这个detailed answer中读到更多关于这个的内容。因此,模块顶层的this将引用该函数的上下文,而不是全局对象。

实际上可以使用 object来引用实际的全局对象,如下所示

代码语言:javascript
复制
function a() {
  console.log('is this the global object? ' + (global === this));
}

a();
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32759892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档