區別:1、內建對像是原生對象的子集屬於原生對象,而宿主對像不是引擎的原生對象;2、內建對像是由ECMAScript實作提供的獨立於宿主環境的所有對象,而宿主物件是ECMAScript官方未定義的物件。
本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。
原生物件包含內建物件(JavaScript引擎初始化時就被建立好的物件)和JavaScript運作過程中動態建立的物件,而宿主物件就是javacript引擎在運作過程中,JavaScript宿主環境(運作環境)透過某種機制注入到javascript引擎中的物件
具體區別:
內建(Build-in)對象:總是在引擎初始化階段就被創造好的對象,是原生對象的子集。內建物件是由EcmaScript提供的獨立於宿主物件之外的,包含Global和Math(數位物件)和內建物件
原生(Naitve)物件:除了內建對象,還包括了一些在運作過程中動態建立的物件。原生物件獨立於宿主環境之外,包含Object,Array,Function,Number,String,Date
宿主物件:宿主物件不是引擎的原生對象,而是由宿主框架透過某種機制註冊到JavaScript引擎中的物件。 Javascipt的運作環境是作業系統和瀏覽器,包含兩類宿主物件BOM和DOM
一、原生物件
ECMA-262 定義原生物件為「獨立於宿主環境的 ECMAScript 實現所提供的物件」。
包含: Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、RangeError、ReferenceError、SyntaxError、TypeError、XURbor、TypeError、表面類、RegExp(正規表示式)
二、內建物件
ECMA-262 使用內建物件(built-in object)定義為「由 ECMAScript 實現所提供的、CMAScript 實現提供的獨立於宿主環境的所有對象,在 ECMAScript 程式開始執行時出現」。這意味著開發者不必明確實例化內建對象,它已被實例化了。
又為「獨立於宿主環境」。 ECMA-262 只定義了兩個內建對象,分別是 Global 和 Math (它們也是原生對象,根據定義,每個內建對像都是原生對象)
三、宿主對象
何為「宿主物件」? ECMAScript中的「宿主」當然就是我們網頁的運作環境,也就是「作業系統」和「瀏覽器」。
BOM 和 DOM 都是宿主物件。因為其對於不同的「宿主」環境所展示的內容不同。其實說白了就是,ECMAScript 官方未定義的對像都屬於宿主對象,因為其未定義的對像大多是自己透過 ECMAScript 程式創建的對象
相關推薦:javascript學習教學
以上是javascript宿主物件和內建物件的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!