注意:這只是出於好奇,而不是我這樣的攔截器。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