我們都知道诈豌,JavaScript有3大對象,分別是本地對象抒和、內(nèi)置對象和宿主對象矫渔。
在此引用ECMA-262(ECMAScript的制定標準)對于他們的定義:
本地對象
與宿主無關,獨立于宿主環(huán)境的ECMAScript實現(xiàn)提供的對象摧莽。
簡單來說庙洼,本地對象就是 ECMA-262 定義的類(引用類型)。
這些引用類型在運行過程中需要通過new來創(chuàng)建所需的實例對象。
包含:Object油够、Array蚁袭、Date、RegExp叠聋、Function撕阎、Boolean、Number碌补、String等虏束。
內(nèi)置對象
與宿主無關,獨立于宿主環(huán)境的ECMAScript實現(xiàn)提供的對象厦章。
在 ECMAScript 程序開始執(zhí)行前就存在镇匀,本身就是實例化內(nèi)置對象,開發(fā)者無需再去實例化袜啃。
內(nèi)置對象是本地對象的子集汗侵。
包含:Global和Math。
ECMAScript5中增添了JSON這個存在于全局的內(nèi)置對象群发。
宿主對象
由 ECMAScript 實現(xiàn)的宿主環(huán)境提供的對象晰韵,包含兩大類,一個是宿主提供熟妓,一個是自定義類對象雪猪。
所有非本地對象都屬于宿主對象。
對于嵌入到網(wǎng)頁中的JS來說起愈,其宿主對象就是瀏覽器提供的對象只恨,瀏覽器對象有很多,如Window和Document等抬虽。
所有的DOM和BOM對象都屬于宿主對象官觅。
關于專業(yè)名詞:本地對象也經(jīng)常被叫做原生對象或內(nèi)部對象,包含Global和Math在內(nèi)的內(nèi)置對象在《JavaScript高級程序設計》里也被叫做單體內(nèi)置對象阐污,很多時候休涤,干脆也會直接把本地對象和內(nèi)置對象統(tǒng)稱為“內(nèi)置對象”,也就是說除了宿主對象笛辟,剩下的都是ECMAScript的內(nèi)部的“內(nèi)置”對象功氨。