js進階---本機物件、內建對象、宿主對象

來源:互聯網
上載者:User

標籤:pre   asp   hello   new   未定義   方法   推斷   cti   class   

 

名詞參考:
原生對象:也叫內部對象、本機物件、native object
內建對象:Build-in object
宿主對象:host object


ECMA-262 定義
原生對象:獨立於宿主環境的ECMAScript實現提供的對象。與宿主無關,在javascript(遠景瀏覽器)、nodejs(node平台)、jscript(ie瀏覽器)、typescript(微軟平台)等等中均有這些對象。簡單來說,本機物件就是 ECMA-262 定義的類(參考型別)。在運行過程中動態建立的對象,需要new
內建對象:由 ECMAScript 實現提供的、獨立於宿主環境的所有對象,在 ECMAScript 程式開始執行時出現,即在引擎初始化階段就被建立好的對象。這意味著開發人員不必明確執行個體化內建對象,它已被執行個體化了
宿主對象:即由 ECMAScript 實現的宿主環境提供的對象,包含兩大類,一個是宿主提供,一個是自訂類對象,ECMAScript官方未定義的對象都屬於宿主對象,所有非本機物件都是宿主對象。宿主提供對象原理--->由宿主架構通過某種機制註冊到ECscript引擎中的對象,如宿主瀏覽器(以遠景為參考)會向ECscript注入window對象,構建其實現javascript。。


內容
原生對象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
內建對象:Global(全域對象)、Math
宿主對象:---->在瀏覽器中window對象以及其下邊所有的子物件(如bom、dom等等),在node中是globla及其子物件,也包含自訂的類對象。
其它對象:全域對象--->是內建對象的一個。自訂對象--->它屬於宿主對象

 

它們之間的關係
本機物件與內建對象:原生包含內建,內建是原生的一個子集。
宿主對象:內建對象的Global,就是宿主的頂層對象,如在瀏覽器中是window、在nodejs中是global


特別說明:
內建對象之Global
Global即為全域對象,Global對象是ECMAScript中最特別的對象,因為實際上它根本不存在!
在ECMAScript中,不存在獨立的函數,所有函數都必須是某個對象的方法。
類似於isNaN()、parseInt()和parseFloat()方法等,看起來都是函數,而實際上,它們都是Global對象的方法。
而且Global對象的方法還不止這些。具體參考http://www.w3school.com.cn/jsref/jsref_obj_global.asp

而且根據我目前沒有定論的推斷,Global對象與宿主有關,是宿主的頂層對象。比如在javascript中,Global對象即為window對象,以下代碼即可測試出

<script>    var str=‘hello‘;    //用宿主對象去 調用內建對象的函數    console.log(window.isNaN(str))</script>

由此可以推測出,當宿主為nodejs時候,nodejs的頂層對象是global,那麼這樣肯定不會報錯--global.isNaN(str)

 

拓展方法內容
無論是什麼對象,均可以通過prototype進行功能拓展。

js進階---本機物件、內建對象、宿主對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.