javascript是一門編程語言,運(yùn)行的環(huán)境是虛擬機(jī)(chrome是v8,別的瀏覽器也有),這個虛擬機(jī)在標(biāo)準(zhǔn)內(nèi)稱作javascript的運(yùn)行時(shí),這個運(yùn)行時(shí)本身就是javascript的宿主環(huán)境了,不過在瀏覽器端,也把瀏覽器稱作它的宿主環(huán)境(虛擬機(jī)寄宿在瀏覽器內(nèi))。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供八步網(wǎng)站建設(shè)、八步做網(wǎng)站、八步網(wǎng)站設(shè)計(jì)、八步網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、八步企業(yè)網(wǎng)站模板建站服務(wù),十載八步做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
本地對象為array obj regexp等可以new實(shí)例化
內(nèi)置對象為gload Math 等不可以實(shí)例化的
宿主為瀏覽器自帶的document,window 等
ECMA-262 把本地對象(native object)定義為“獨(dú)立于宿主環(huán)境的 ECMAScript 實(shí)現(xiàn)提供的對象”。\x0d\x0a看定義有些不清楚,因?yàn)檫€未了解何為“宿主環(huán)境”的時(shí)候就引用了“宿主環(huán)境”這個概念,著實(shí)讓人有些發(fā)暈。\x0d\x0a不過,根據(jù)我強(qiáng)悍的文學(xué)功底,“宿主”一般是指寄生的生物選擇的寄生體,這讓我想起了“火影”里的“白”。簡單說,就是用戶的機(jī)器環(huán)境,包括操作系統(tǒng)和瀏覽器。\x0d\x0a再來看一下,“本地對象”包含哪些內(nèi)容:\x0d\x0aObject、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError\x0d\x0a由此可以看出,簡單來說,本地對象就是 ECMA-262 定義的類(引用類型)。\x0d\x0a內(nèi)置對象\x0d\x0aECMA-262 把內(nèi)置對象(built-in object)定義為“由 ECMAScript 實(shí)現(xiàn)提供的、獨(dú)立于宿主環(huán)境的所有對象,在 ECMAScript 程序開始執(zhí)行時(shí)出現(xiàn)”。這意味著開發(fā)者不必明確實(shí)例化內(nèi)置對象,它已被實(shí)例化了。\x0d\x0a同樣是“獨(dú)立于宿主環(huán)境”。根據(jù)定義我們似乎很難分清“內(nèi)置對象”與“本地對象”的區(qū)別。而ECMA-262 只定義了兩個內(nèi)置對象,即 Global 和 Math (它們也是本地對象,根據(jù)定義,每個內(nèi)置對象都是本地對象)。\x0d\x0a如此就可以理解了。內(nèi)置對象是本地對象的一種。而其包含的兩種對象中,Math對象我們經(jīng)常用到,可這個Global對象是啥東西呢?\x0d\x0aGlobal對象是ECMAScript中最特別的對象,因?yàn)閷?shí)際上它根本不存在,有點(diǎn)玩人的意思。大家要清楚,在ECMAScript中,不存在獨(dú)立的函數(shù),所有函數(shù)都必須是某個對象的方法。\x0d\x0a類似于isNaN()、parseInt()和parseFloat()方法等,看起來都是函數(shù),而實(shí)際上,它們都是Global對象的方法。而且Global對象的方法還不止這些。有關(guān)Global對象的具體方法和屬性,感興趣的同學(xué)可以看一下這里:JavaScript 全局對象參考手冊\x0d\x0a宿主對象\x0d\x0a何為“宿主對象”?主要在這個“宿主”的概念上,前面我已經(jīng)介紹了“火影”,介紹了“白”。而ECMAScript中的“宿主”當(dāng)然就是我們網(wǎng)頁的運(yùn)行環(huán)境,即“操作系統(tǒng)”和“瀏覽器”。\x0d\x0a所有非本地對象都是宿主對象(host object),即由 ECMAScript 實(shí)現(xiàn)的宿主環(huán)境提供的對象。\x0d\x0a所有的BOM和DOM對象都是宿主對象。因?yàn)槠鋵τ诓煌摹八拗鳌杯h(huán)境所展示的內(nèi)容不同。其實(shí)說白了就是,ECMAScript官方未定義的對象都屬于宿主對象,因?yàn)槠湮炊x的對象大多數(shù)是自己通過ECMAScript程序創(chuàng)建的對象。\x0d\x0avar oPerson =new Object;\x0d\x0a\x0d\x0aoPerson.name='simaopig';\x0d\x0a\x0d\x0aoPerson.age='26';\x0d\x0a這里我自己定義的對象oPerson就是宿主對象。因?yàn)镋CMAScript中未定義此對象,而此對象又只存在于我所運(yùn)行的頁面中。其貌似聽起來是一個哲學(xué)命題。很奇怪我這款主題居然沒有del的樣式,殘念。
分享題目:javascript宿主,javascript宿主對象
網(wǎng)站路徑:http://chinadenli.net/article30/dsiohso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站制作、App設(shè)計(jì)、軟件開發(fā)、企業(yè)網(wǎng)站制作、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)