node的頂層物件是global物件。 global物件是node的全域對象,該物件及其所有屬性都可以在程式的任何地方存取;global物件最根本的作用是作為全域變數的宿主。
本教學操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。
頂層對象,在瀏覽器中指的是window,在node環境中指的是global物件。
JavaScript 中有一個特殊的對象,稱為全域物件(Global Object),它及其所有屬性都可以在程式的任何地方訪問,即全域變數。
在瀏覽器 JavaScript 中,通常 window 是全域對象, 而 Node.js 中的全域物件是 global,所有全域變數(除了 global 本身以外)都是 global 物件的屬性。
在 Node.js 我們可以直接存取到 global 的屬性,而不需要在應用程式中包含它。
全域物件與全域變數
global 最根本的作用是作為全域變數的宿主。依照ECMAScript 的定義,滿足以下條件的變數是全域變數:
在最外層定義的變數;
全域物件的屬性;
隱含定義的變數(未定義直接賦值的變數)。
當你定義一個全域變數時,這個變數同時也會成為全域物件的屬性,反之亦然。要注意 意的是,在 Node.js 中你不可能在最外層定義變量,因為所有使用者程式碼都是屬於目前模組的, 而模組本身不是最外層上下文。
注意: 最好不要使用 var 定義變數以避免引入全域變量,因為全域變數會污染命名空間,提高程式碼的耦合風險。
global物件的__filename屬性和__dirname屬性
#__filename
屬性:傳回目前執行的檔案的文件路徑,該路徑是經過解析後的絕對路徑,在模組中,該路徑是模組檔案的路徑,此屬性並非全域屬性,而是模組的
__dirname
屬性:返回目前執行腳本文件所在目錄的路徑,該屬性也是模組的,而非全域
global對像下的其他常用對象,還有其他很多常用對象,參考API (http://nodejs.cn/api/globals.html)
#更多node相關知識,請造訪:nodejs 教學!
以上是node的頂層物件是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!