javascript 對象分類javascript
ECMAScript是一個標準或者規範它定義了一種語言的下面內容: java
文檔對象模型(DOM):描述了處理網頁內容的方法和接口 (參考內容:http://developer.51cto.com/art/201009/224979.htm)
DOM自己也是一種標準或者規範,它定義了一種以面向對象方式描述的文檔模型,並以節點層級來具體展示。
使用這種方式以及DOM定義的一些接口,可以使開發者對文檔的內容和結構具備至關好的控制能力。
DOM 在被 Web 瀏覽器開始實現以前就已是一種標準了。
早期網景公司和微軟公司支持不一樣形態的DHTML(動態HTML:不經過網頁刷新便可更新文檔結構,其實就是使用各自的DOM接口來操做HTML),
爲了可以作到瀏覽器兼容性,W3C制訂了一個DOM規範(如今已經發展到DOM Level 3),
其本質是創建網頁與Script或程序語言溝通的橋樑,並保持瀏覽器兼容性。
DOM level 3也是各瀏覽器廠商各自實現的,因此會有兼容性問題。瀏覽器
從名字上能夠看出,它是用來操做瀏覽器的一個模型,利用javascript經過BOM定義的接口和方法來與瀏覽器交互。
須要注意的是BOM不是一個標準,不一樣瀏覽器廠商有不一樣的BOM接口及實現(不兼容是必然的!)。
爲數很少的共同點是各瀏覽器廠商有一個共同的窗口對象和導航對象,可是這些對象的屬性和方法,瀏覽器廠商也能夠任意擴展。
BOM 主要處理瀏覽器窗口和框架,不過一般瀏覽器特定的 JavaScript 擴展都被看作 BOM 的一部分。這些擴展包括:cookie
ECMA-262 把本地對象(native object)定義爲「獨立於宿主環境的 ECMAScript 實現提供的對象」。簡單來講,本地對象就是 ECMA-262 定義的類(引用類型)。它們包括: 框架
ECMA-262 把內置對象(built-in object)定義爲「由 ECMAScript 實現提供的、獨立於宿主環境的全部對象,在 ECMAScript 程序開始執行時出現」。
這意味着開發者沒必要明確實例化內置對象,它已被實例化了。
ECMA-262 只定義了兩個內置對象,即 Global 和 Math (它們也是本地對象,根據定義,每一個內置對象都是本地對象)。ui
宿主對象
全部非本地對象都是宿主對象(host object),即由 ECMAScript 實現的宿主環境提供的對象。
全部 BOM(Window(同window)之類的) 和 DOM(document之類的) 對象都是宿主對象。.net