看了一些 JavaScript 相關的書並且在國內外網站查閱了很多相關的知識,做一下有關 JavaScript 的記錄,文章會不斷細化、優化,如有新的感悟或版本更替也會逐漸修改,以求不斷精進及對自己幫助很大的互聯網環境有所反饋。JavaScript 有3大對象,分別是本地對象、內置對象和宿主對象,以下主要記錄各對象的異同及其屬性或方法的使用示例。
根據 ECMA-262(ECMAScript的制定標准)對於他們的定義:
- 本地對象 ( native object )
- 由 ECMAScript 實現提供並獨立於宿主環境的任何對象。
- 本地對象可以理解為 ECMA-262 定義的類(引用類型)。
- 這些引用類型在運行過程中需要通過new來創建所需的實例對象。
- 包含:
Object
、String、Array
、Date
、Number
、RegExp
、Function
、Boolean
、Error
等。
- 內置對象 ( built-in object )
- 由 ECMAScript 實現提供並獨立於宿主環境的,在程序開始執行就出現的對象。
- 本身就是實例化對象,開發者無需再去實例化。
- 所有內置對象都是本地對象的子集。
- 包含:
Global
和Math
。 - ECMAScript5中增添了
JSON
這個存在於全局的內置對象。
- 宿主對象 ( host object )
- 由 ECMAScript 實現的宿主環境(如某瀏覽器)提供的對象(如由瀏覽器提供的 Window 和 Document),包含兩大類,一個是宿主提供,一個是自定義類對象。
- 所有非本地對象都屬於宿主對象。
- 對於嵌入到網頁中的JS來說,其宿主對象就是瀏覽器提供的對象,瀏覽器對象有很多,如
Window
和Document
等。 - 包含:DOM 、BOM和自定義對象。
關於專業名詞:本地對象也經常被叫做原生對象或內部對象,包含Global和Math在內的內置對象在《JavaScript高級程序設計》里也被叫做單體內置對象,很多時候,干脆也會直接把本地對象和內置對象(標准內置對象)統稱為“內置對象”,也就是說除了宿主對象,剩下的都是ECMAScript的內部的“內置”對象。
JavaScript 三大對象關系:
- 宿主對象(DOM、BOM、自定義)
- 內置對象
- 本地對象(Array、String、Date等需new出來的)
- 標准內置對象(Global、Math、JSON)
JavaScript 中的三大對象 (本地對象、內置對象、 宿主對象)
本地對象
- Object 對象屬性和方法
- String 對象屬性和方法
- Array 對象屬性和方法
- Date 對象屬性和方法
- Number 對象屬性和方法
- RegExp 對象屬性和方法
- Function 對象屬性和方法
- Boolean 對象屬性和方法
- Error 對象屬性和方法
內置對象
宿主對象