本篇文章為大家展示了javascript中宿主對象和原生對象有什么區(qū)別,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在懷安等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、做網(wǎng)站 網(wǎng)站設計制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,成都全網(wǎng)營銷,成都外貿(mào)網(wǎng)站建設公司,懷安網(wǎng)站建設費用合理。
區(qū)別:原生對象是獨立于宿主環(huán)境的ECMAScript實現(xiàn)提供的對象,即ECMA-262定義的類(引用類型);而宿主對象是由ECMAScript實現(xiàn)的宿主環(huán)境提供的對象,所有非原生對象都是宿主對象。
內(nèi)置(Build-in)對象與原生(Naitve)對象的區(qū)別在于:前者總是在引擎初始化階段就被創(chuàng)建好的對象,是后者的一個子集;而后者包括了一些在運行過程中動態(tài)創(chuàng)建的對象。
引擎擴展對象是一個并不太大的集合,一般來說比較確定,它們也屬于引擎的原生對象(但不屬于ECMA規(guī)范的原生對象)。
宿主對象不是引擎的原生對象,而是由宿主框架通過某種機制注冊到JavaScript引擎中的對象。
一些宿主會把自己提供的對象/構(gòu)造器也稱為“原生對象”,例如Internet Explorer 7就把它提供的XMLHttpRequest()稱為原生的——與此相對的是在它的更早先版本中通過“new ActiveXObject('Microsoft.XMLHTTP')”這樣的方法創(chuàng)建的對象。這種情況下,讀者應注意到“宿主的原生對象”與“引擎的原生對象”之間的差異。
一、原生對象
ECMA-262 把原生對象(native object)定義為“獨立于宿主環(huán)境的 ECMAScript 實現(xiàn)提供的對象”。
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、ActiveXObject(服務器方面)、Enumerator(集合遍歷類)、RegExp(正則表達式)
由此可以看出,簡單來說,原生對象就是 ECMA-262 定義的類(引用類型)。
二、內(nèi)置對象
ECMA-262 把內(nèi)置對象(built-in object)定義為“由 ECMAScript 實現(xiàn)提供的、獨立于宿主環(huán)境的所有對象,在 ECMAScript 程序開始執(zhí)行時出現(xiàn)”。這意味著開發(fā)者不必明確實例化內(nèi)置對象,它已被實例化了。
同樣是“獨立于宿主環(huán)境”。根據(jù)定義我們似乎很難分清“內(nèi)置對象”與“原生對象”的區(qū)別。而ECMA-262 只定義了兩個內(nèi)置對象,即 Global 和 Math (它們也是原生對象,根據(jù)定義,每個內(nèi)置對象都是原生對象)。
如此就可以理解了。內(nèi)置對象是原生對象的一種。而其包含的兩種對象中,Math對象我們經(jīng)常用到,可這個Global對象是啥東西呢?
Global對象是ECMAScript中最特別的對象,因為實際上它根本不存在!在ECMAScript中,不存在獨立的函數(shù),所有函數(shù)都必須是某個對象的方法。
類似于isNaN()、parseInt()和parseFloat()方法等,看起來都是函數(shù),而實際上,它們都是Global對象的方法。而且Global對象的方法還不止這些。
三、宿主對象
何為“宿主對象”? ECMAScript中的“宿主”當然就是我們網(wǎng)頁的運行環(huán)境,即“操作系統(tǒng)”和“瀏覽器”。所有非原生對象都是宿主對象(host object),即由 ECMAScript 實現(xiàn)的宿主環(huán)境提供的對象。
所有的 BOM 和 DOM 對象都是宿主對象。因為其對于不同的“宿主”環(huán)境所展示的內(nèi)容不同。其實說白了就是,ECMAScript官方未定義的對象都屬于宿主對象,因為其未定義的對象大多數(shù)是自己通過ECMAScript程序創(chuàng)建的對象。TML DOM 是 W3C 標準(是 HTML 文檔對象模型的英文縮寫,Document Object Model for HTML)。
HTML DOM 定義了用于 HTML 的一系列標準的對象,以及訪問和處理 HTML 文檔的標準方法。
通過 DOM,可以訪問所有的 HTML 元素,連同它們所包含的文本和屬性。可以對其中的內(nèi)容進行修改和刪除,同時也可以創(chuàng)建新的元素。
上述內(nèi)容就是javascript中宿主對象和原生對象有什么區(qū)別,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。