首頁  >  文章  >  web前端  >  JS中各種物件關係

JS中各種物件關係

不言
不言原創
2018-04-10 14:20:441362瀏覽


      一張圖讓你看懂javascript各類型的關係

##     這張圖來自於《JavaScript語言精髓與程式設計實踐》第三章P184頁。最近在改第二版,這張圖重做了,需要的可以對照著看。

  此外,補充圖中用到的概念:

  1、內建(Build-in)物件與原生(Naitve)物件的差別在於:前者總是在引擎初始化階段就被創建好的對象,是後者的子集;而後者包含了一些在運行過程中動態建立的對象。

  2、引擎擴充物件是一個不太大的集合,一般來說比較確定,它們也屬於引擎的原生物件(但不屬於ECMA規範的原生物件)。

  3、宿主物件不是引擎的原生對象,而是由宿主框架透過某種機制註冊到JavaScript引擎中的對象。

###  4、某些宿主會把自己提供的物件/建構器也稱為“原生物件”,例如Internet Explorer 7就把它提供的XMLHttpRequest()稱為原生的-與此相對的是在它的更早先版本中透過「new ActiveXObject('Microsoft.XMLHTTP')」這樣的方法所建立的物件。在這種情況下,讀者應注意到「宿主的原生物件」與「引擎的原生物件」之間的差異。 ############

轉自:http://www.w3cfuns.com/thread-5594427-1-1.html

JavaScript 本機物件、內建物件、宿主物件


本地物件(要NEW)

#ECMA-262 把本地物件(native object)定義為「獨立於宿主環境的ECMAScript實現提供的對象」。

Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、ActiveXObject(伺服器方面)、Enumerator (Regprror)、Enumerator (正規表示式)

由此可以看出,簡單來說,本地物件就是ECMA-262 定義的類別(引用型別)。


內建物件(不要NEW  直接引用-只有MATH  GLOBAL)

ECMA-262 把內建物件(built-in object)定義為「由ECMAScript 實作提供的、獨立於宿主環境的所有對象,在ECMAScript 程式開始執行時出現」。這意味著開發者不必明確實例化內建對象,它已被實例化了。

同樣是「獨立於宿主環境」。根據定義我們似乎很難分辨「內建物件」與「本地物件」的區別。而ECMA-262 只定義了兩個內建對象,即 Global 和 Math (它們也是本地對象,根據定義,每個內建對像都是本地對象)。

如此就可以理解了。內建物件是本地物件的一種。而其包含的兩種物件中,Math物件我們常用到,可這個Global物件是啥東西呢?

Global物件是ECMAScript中最特別的對象,因為實際上它根本不存在!在ECMAScript中,不存在獨立的函數,所有函數都必須是某個物件的方法。

類似isNaN()、parseInt()和parseFloat()方法等,看起來都是函數,而實際上,它們都是Global物件的方法。而且Global對象的方法還不只這些。有關Global物件的具體方法和屬性,有興趣的同學可以看看這裡:JavaScript 全域物件參考手冊

宿主物件(BOM  DOM  &  自訂物件)

何為「宿主物件」?  ECMAScript中的「宿主」當然就是我們網頁的運作環境,也就是「作業系統」和「瀏覽器」。所有非本地物件都是宿主物件(host object),也就是由 ECMAScript 實作的宿主環境提供的物件。

所有的BOM和DOM物件都是宿主物件。因為其對於不同的「宿主」環境所展示的內容不同。其實說白了就是,ECMAScript官方未定義的對像都屬於宿主對象,因為其未定義的對像大多是自己透過ECMAScript程式所建立的對象。 TML DOM 是 W3C 標準(是 HTML 文件物件模型的英文縮寫,Document Object Model for HTML)。

HTML DOM 定義了用於 HTML 的一系列標準的對象,以及存取和處理 HTML 文件的標準方法。

透過 DOM,可以存取所有的 HTML 元素,連同它們所包含的文字和屬性。可以對其中的內容進行修改和刪除,同時也可以建立新的元素。

DHTML DOM 獨立於平台和程式語言。它可被任何程式語言諸如 Java、JavaScript 和 VBScript 使用。

點擊下面的鏈接,可獲得更多關於如何使用 JavaScript 來存取和處理 DOM 物件的知識:

DOM物件:

Document代表整個 HTML 文檔,用來存取頁面中的所有元素。 Anchor代表 元素。 Area代表圖像地圖中的 元素。 Base代表 元素。 Body代表影像地圖中的 元素。 Button代表