JavaScript的本機物件、內建對象、宿主對象

來源:互聯網
上載者:User

標籤:nan   包含   java   cell   實現   瀏覽器安全色   不同   body   oat   

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

1、本機物件

ECMA-262 把本機物件(native object)定義為“獨立於宿主環境的 ECMAScript 實現提供的對象”。

再來看一下,“本機物件”包含哪些內容:

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

由此可以看出,本機物件就是 ECMA-262 定義的類(參考型別)。

2、內建對象

ECMA-262 把內建對象(built-in object)定義為“由 ECMAScript 實現提供的、獨立於宿主環境的所有對象,在 ECMAScript 程式開始執行時出現”。這意味著開發人員不必明確執行個體化內建對象,它已被執行個體化了。

同樣是“獨立於宿主環境”。根據定義我們似乎很難分清“內建對象”與“本機物件”的區別。而ECMA-262 只定義了兩個內建對象,即 Global 和 Math (它們也是本機物件,根據定義,每個內建對象都是本機物件)。

如此,內建對象是本機物件的一種。而其包含的兩種對象中,Math對象我們經常用到,可這個Global對象是啥東西呢?

Global對象是ECMAScript中最特別的對象,因為實際上它根本不存在,但大家要清楚,在ECMAScript中,不存在獨立的函數,所有函數都必須是某個對象的方法。類似於isNaN()、parseInt()和parseFloat()方法等,看起來都是函數,而實際上,它們都是Global對象的方法。而且Global對象的方法還不止這些。

 3、宿主對象

由ECMAScript實現的宿主環境提供的對象,可以理解為:瀏覽器提供的對象。所有的BOM和DOM都是宿主對象。

4、自訂對象

 根據JS的對象擴充機制,使用者可以自訂JS對象。

總結:

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應用及功能得到擴充

JavaScript的本機物件、內建對象、宿主對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.