首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript中的self.self == self check的目标是什么?

JavaScript中的self.self == self check的目标是什么?
EN

Stack Overflow用户
提问于 2015-10-17 09:57:09
回答 3查看 757关注 0票数 6

backbone.js的开头是:

代码语言:javascript
复制
//Establish the root object, `window` (`self`) in the browser, or `global` on the server.  
//We use `self` instead of `window` for `WebWorker` support.  
var root = (typeof self == 'object' && self.self == self && self) ||  
           (typeof global == 'object' && global.global == global && global);  

self.self == self是用来做什么的?什么时候它会是假的?

global.global == global也是如此。

EN

回答 3

Stack Overflow用户

发布于 2015-10-20 00:19:28

代码语言:javascript
复制
function Mistake(x);
    self = this;
    x.on("event", function() {
        console.log(self);
    });
}
new Mistake(…);

你发现了吗?现在我们得到了一个不是backbone所期望的self的全局self。因此,它检查self是否实际上是全局对象,当self是一个对象,并且该对象将“全局变量”self作为指向对象本身的属性时,很可能会出现这种情况。

global也是如此。

票数 1
EN

Stack Overflow用户

发布于 2019-08-12 16:05:07

我相信这篇文章回答了这个问题。

The Global Object in Various JS Environments

简而言之:

  • typeof self === 'object' && self.self === self && self在浏览器环境中检测全局对象,同时支持在time.
  • typeof global === 'object' && global.global === global && global中运行的代码在服务器上检测全局对象(例如,Node.js).
  • Using this作为后备,以添加对在Node.js vm模块中运行的代码的支持。
票数 1
EN

Stack Overflow用户

发布于 2015-10-19 23:57:33

我认为here你至少可以找到部分解释。

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

https://stackoverflow.com/questions/33181929

复制
相关文章

相似问题

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