天天看點

《JavaScript啟示錄》——1.3 JavaScript原生/内置對象構造函數

本節書摘來自異步社群《javascript啟示錄》一書中的第1章,第1.3節,作者:【美】cody lindley著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

javascript語言包含9個原生(或内置)對象構造函數。javascript使用這些對象來建構javascript語言。“建構”的意思是指,這些對象是用于表達javascript代碼中的對象值,以及協調語言中的多個特性。是以,原生對象構造函數是多方面的,它們生成對象,但也被用于促進語言的程式設計約定的形成。例如,函數是function()構造函數建立的對象,但作為構造函數,使用new關鍵字調用後,它們也可用于建立其他對象。

下面列出了javascript預包裝的9個原生對象構造函數:

number()

string()

boolean()

object()

array()

function()

date()

regexp()

error()

javascript主要是由這9個對象(以及字元串、數字和布爾原始值)來建立的。深入了解這些對象,對充分利用javascript獨特的程式設計力量和語言靈活性是非常關鍵的。

注意

math對象在這裡是很古怪的。它是一個靜态對象,而不是構造函數,也就是說,我們不能這麼做:var x = new math()。但我們可以使用它,就好像它已經執行個體化好了一樣(如math.pi)。實際上,math隻是一個由javascript設定的對象命名空間,用于存儲數學函數。

原生對象有時也被稱為“全局對象”,因為它們是javascript中原生就可以使用的對象。不要混淆的術語是擁有"head"全局對象的global object(全局對象),它是作用域鍊中的最高層級。例如,所有web浏覽器中都有的window對象。

number()、string()和boolean()構造函數不僅能夠建構對象,而且能為字元串、數字和布爾值提供原始值,這取決于如何充分利用構造函數。如果直接調用這些構造函數,那麼就會傳回一個複雜對象。如果隻是簡單地在代碼中表示一個數字、字元串或布爾值(5、“foo”和true等原始值),那麼構造函數将傳回一個原始值,而不是一個複雜的對象值。

繼續閱讀