JavaScript中本地對象、內置對象和宿主對象

首先解釋下宿主環境:通常宿主環境由外殼程序建立與維護,只要能提供js引擎執行的環境均可稱之爲外殼程序。如:web瀏覽器,一些桌面應用系統等。即由web瀏覽器或是這些桌面應用系統早就的環境即宿主環境。web

本地對象瀏覽器

ECMA-262 把本地對象(native object)定義爲「獨立於宿主環境的 ECMAScript 實現提供的對象」。函數

再來看一下,「本地對象」包含哪些內容:ui

Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIErrorspa

由此能夠看出,簡單來講,本地對象就是 ECMA-262 定義的類(引用類型)。對象

內置對象ip

ECMA-262 把內置對象(built-in object)定義爲「由 ECMAScript 實現提供的、獨立於宿主環境的全部對象,在 ECMAScript 程序開始執行時出現」。這意味着開發者沒必要明確實例化內置對象,它已被實例化了。ci

一樣是「獨立於宿主環境」。根據定義咱們彷佛很難分清「內置對象」與「本地對象」的區別。而ECMA-262 只定義了兩個內置對象,即 Global 和 Math (它們也是本地對象,根據定義,每一個內置對象都是本地對象)。開發

如此就能夠理解了。內置對象是本地對象的一種。而其包含的兩種對象中,Math對象咱們常常用到,可這個Global對象是啥東西呢?get

Global對象是ECMAScript中最特別的對象,由於實際上它根本不存在,但你們要清楚,在ECMAScript中,不存在獨立的函數,全部函數都必須是某個對象的方法。相似於isNaN()、parseInt()和parseFloat()方法等,看起來都是函數,而實際上,它們都是Global對象的方法。並且Global對象的方法還不止這些。有關Global對象的具體方法和屬性,感興趣的同窗能夠看一下這裏:JavaScript 全局對象參考手冊

      3.宿主對象

由ECMAScript實現的宿主環境提供的對象,能夠理解爲:瀏覽器提供的對象。全部的BOM和DOM都是宿主對象。

4.自定義對象

 

總結:

JS中,能夠將對象分爲「內部對象」、「宿主對象」和「自定義對象」三種。

 

1,內部對象

js中的內部對象包括Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各類錯誤類對象,包括Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError。

其中Global和Math這兩個對象又被稱爲「內置對象」,這兩個對象在腳本程序初始化時被建立,沒必要實例化這兩個對象。

 

2.宿主對象

宿主對象就是執行JS腳本的環境提供的對象。對於嵌入到網頁中的JS來講,其宿主對象就是瀏覽器提供的對象,因此又稱爲瀏覽器對象,如IE、Firefox等瀏覽器提供的對象。不一樣的瀏覽器提供的宿主對象可能不一樣,即便提供的對象相同,其實現方式也截然不同!這會帶來瀏覽器兼容問題,增長開發難度。

瀏覽器對象有不少,如Window和Document等等。

 

3.自定義對象

顧名思義,就是開發人員本身定義的對象。JS容許使用自定義對象,使JS應用及功能獲得擴充

相關文章
相關標籤/搜索