您好,登錄后才能下訂單哦!
今天小編給大家分享一下javascript宿主對象和內置對象的區別有哪些的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
區別: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、URIError、ActiveXObject(服務器方面)、Enumerator(集合遍歷類)、RegExp(正則表達式)
二、內置對象
ECMA-262 把內置對象(built-in object)定義為“由 ECMAScript 實現提供的、獨立于宿主環境的所有對象,在 ECMAScript 程序開始執行時出現”。這意味著開發者不必明確實例化內置對象,它已被實例化了。
同樣是“獨立于宿主環境”。ECMA-262 只定義了兩個內置對象,即 Global 和 Math (它們也是原生對象,根據定義,每個內置對象都是原生對象)
三、宿主對象
何為“宿主對象”? ECMAScript中的“宿主”當然就是我們網頁的運行環境,即“操作系統”和“瀏覽器”。
BOM 和 DOM 都是宿主對象。因為其對于不同的“宿主”環境所展示的內容不同。其實說白了就是,ECMAScript 官方未定義的對象都屬于宿主對象,因為其未定義的對象大多數是自己通過 ECMAScript 程序創建的對象
以上就是“javascript宿主對象和內置對象的區別有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。