獲取 JavaScript 全局
global
JavaScript 中的對象非常重要:所有全局變量和函數都成為 global
的屬性 目的。在瀏覽器中。 window
對象兼作 global
對象,大多數開發人員甚至在沒有意識到的情況下使用它。然而,在其他 JavaScript 環境中,global
對像是別的東西。大多數時候,它不會分配給全局變量供您訪問。
如果你的代碼要在非瀏覽器 JavaScript 環境中運行,你最好避免使用 window
用於處理全局變量。但是,引用 global
對象可能是必要的。為此,我提出 getGlobal()
函數,適用於任何 JavaScript 環境並始終返回 global
對象:
function getGlobal(){<br />
return (function(){<br />
return this;<br />
}).call(null);<br />
}
這個函數的關鍵是 this
對象總是指向 global
使用 call()
時的對象 或 apply()
並傳入 null
作為第一個論點。由於 null
範圍無效,解釋器插入 global
目的。該函數使用內部函數來確保範圍始終正確。然後您可以按如下方式使用此功能:
var global = getGlobal();
我建議您在編寫應該在非瀏覽器環境中執行的 JavaScript 時這樣做。享受吧。