注意:这只是出于好奇,而不是我这样的拦截器。NodeJS中GLOBAL变量的秘密
当我正在处理我的NODE项目时,我遇到了一些让我困惑的事情,但我找不到为什么会这样。请找样本代码来了解这个问题
function a() {
console.log(this === GLOBAL); //true
}
console.log(this === GLOBAL); // false
a();
现在,in node documentation上面清清楚楚地写着
顶级范围不是全局范围
,所以我从上面的注释,为什么理解this
是false
以外的function a
(顶级)。但后来里面function a
this
指向GLOABAL
,为什么呢?
我使用node-5.5.0
,但我检查的行为上node-0.12
,其一贯
可能是它的一些愚蠢的误解,从我的身边,多包涵。
UPDATE:由的方式 - 在顶层this
是module.exports
,和this
在函数内部是GLOBAL
你在混淆两个不同的概念。 “this”的价值与范围无关。 – Quentin
@Quentin:我试图为“任何函数之外的JS代码”(如浏览器中的全局范围)找到一个名称,在这个问题中,我只是指不同范围内的上下文。编辑问题 – Oxi
查看[存储在node.js中的模块变量在什么范围内?](http://stackoverflow.com/q/15406062/1048572) – Bergi