1. 程式人生 > >概念區分:JavaScript中的global物件,window物件以及document物件

概念區分:JavaScript中的global物件,window物件以及document物件

1、global物件(全域性物件)

《JS高階程式設計》中談到,global物件可以說是ECMAScript中對特別的一個物件了,因為不管你從什麼角度上看,這個物件都是不存在的。從某種意義上講,它是一個終極的“兜底兒物件”,換句話說呢,就是不屬於任何其他物件的屬性和方法,最終都是它的屬性和方法。我理解為,這個global物件呢,就是整個JS的“老祖宗”,找不到歸屬的那些“子子孫孫”都可以到它這裡來認祖歸宗。所有在全域性作用域中定義的屬性和函式,都是global物件的屬性和方法,比如isNaN()、parseInt()以及parseFloat()等,實際都是它的方法;還有就是常見的一些特殊值,如:NaN、undefined等都是它的屬性,以及一些建構函式Object、Array等也都是它的方法。總之,記住一點:global物件就是“老祖宗”,所有找不到歸屬的就都是它的。

2、window物件

前面說了global物件是“老祖宗”,那有人該問了,你把window物件置於何地呢?對,javascript這門語言現在這麼紅火很大部分原因是因為W3C將它作為寫頁面的官方指令碼語言,但別忘了js它不僅僅可以用來寫頁面,也就是不僅僅可以用在瀏覽器中。window物件是相對於web瀏覽器而言的,它並不是ECMAScripta規定的內建物件,內建物件的定義是:“由ECMAScript實現提供的、不依賴於宿主環境的物件,這些物件在ECMAScript程式執行之前就已經存在了。window物件是宿主物件也就是在一定的環境中才會生成的物件(這裡也就是指瀏覽器),而global物件是在任何環境中都存在的。window物件具體也就是指瀏覽器開啟的那個視窗。

3、document物件

簡單來說,document物件是window物件的一個屬性,是顯示於視窗內的一個文件。而window物件則是一個頂層物件,它不是另一個物件的屬性。document可以理解為文件,就是你的網頁,而window是你的視窗,就是你的瀏覽器包含的。它們倆在沒有框架的情況下可以說是等同的,在有框架的情況下就要區別對待了。

以上。