JavaScript 中的三大對象 (本地對象、內置對象、 宿主對象)


看了一些 JavaScript 相關的書並且在國內外網站查閱了很多相關的知識,做一下有關 JavaScript 的記錄,文章會不斷細化、優化,如有新的感悟或版本更替也會逐漸修改,以求不斷精進及對自己幫助很大的互聯網環境有所反饋。JavaScript 有3大對象,分別是本地對象、內置對象和宿主對象,以下主要記錄各對象的異同及其屬性或方法的使用示例。

根據 ECMA-262(ECMAScript的制定標准)對於他們的定義:

  • 本地對象 ( native object )
    • 由 ECMAScript 實現提供並獨立於宿主環境的任何對象。
    • 本地對象可以理解為 ECMA-262 定義的類(引用類型)。
    • 這些引用類型在運行過程中需要通過new來創建所需的實例對象。
    • 包含:ObjectString、ArrayDateNumberRegExpFunctionBooleanError等。
  • 內置對象 ( built-in object )
    • 由 ECMAScript 實現提供並獨立於宿主環境的,在程序開始執行就出現的對象。
    • 本身就是實例化對象,開發者無需再去實例化。
    • 所有內置對象都是本地對象的子集。
    • 包含:GlobalMath
    • ECMAScript5中增添了JSON這個存在於全局的內置對象。
  • 宿主對象 ( host object )
    • 由 ECMAScript 實現的宿主環境(如某瀏覽器)提供的對象(如由瀏覽器提供的 Window 和 Document),包含兩大類,一個是宿主提供,一個是自定義類對象。
    • 所有非本地對象都屬於宿主對象。
    • 對於嵌入到網頁中的JS來說,其宿主對象就是瀏覽器提供的對象,瀏覽器對象有很多,如WindowDocument等。
    • 包含:DOM 、BOM和自定義對象。

關於專業名詞:本地對象也經常被叫做原生對象或內部對象,包含Global和Math在內的內置對象在《JavaScript高級程序設計》里也被叫做單體內置對象,很多時候,干脆也會直接把本地對象和內置對象(標准內置對象)統稱為“內置對象”,也就是說除了宿主對象,剩下的都是ECMAScript的內部的“內置”對象。

 

JavaScript 三大對象關系:

  • 宿主對象(DOM、BOM、自定義)
  • 內置對象
    • 本地對象(Array、String、Date等需new出來的)
    • 標准內置對象(Global、Math、JSON)

 

 

 

JavaScript 中的三大對象 (本地對象、內置對象、 宿主對象)

本地對象

 

內置對象

 

宿主對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM