首頁  >  文章  >  web前端  >  javascript宿主物件和內建物件的差別是什麼

javascript宿主物件和內建物件的差別是什麼

WBOY
WBOY原創
2022-03-10 16:51:422033瀏覽

區別:1、內建對像是原生對象的子集屬於原生對象,而宿主對像不是引擎的原生對象;2、內建對像是由ECMAScript實作提供的獨立於宿主環境的所有對象,而宿主物件是ECMAScript官方未定義的物件。

javascript宿主物件和內建物件的差別是什麼

本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。

javascript宿主物件和內建物件的差異是什麼

原生物件包含內建物件(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn