當前位置:才華齋>設計>網頁設計>

javascript包裝物件的用法

網頁設計 閱讀(2.96W)

js物件是一種複合值:它是屬性或已命名值得集合。

javascript包裝物件的用法

參考以下程式碼

var s = "hello world";var len = th;

在該例子中,s是字串,而字串不是物件,但為何會有屬性呢?其實只要引用了字串s的屬性,js就會將字串通過呼叫new String(s)的方式轉換為物件,該物件繼承了字串的方法,並被用來處理屬性的引用;一旦屬性引用結束,這個新建立的物件就會被銷燬(在實現上並不一定建立或銷燬這個臨時物件,但整個過程看來是這樣)。

同字串一樣,數字和布林值也具有各自的方法:通過Number()單核Boolean()建構函式建立臨時物件,這些方法的呼叫都是來自於這個臨時物件;然而null和undefined沒有包裝物件:訪問他們的屬性會造成型別錯誤。

比如以下程式碼:

var s0 = "hello world"; = 100;var t = ; //t的值將為undefined

因為第2行建立臨時物件後,立即將其銷燬;第三行通過原始的字串值建立一個新字串物件,嘗試讀取其len屬性,自然不存在。這段程式碼說明在讀取字串、數字和布林值的屬性值或方法時,表現的'像物件一樣。但如果你試圖給其屬性賦值,則會忽略這個操作:修改只是發生在臨時物件上,而這個臨時物件並未繼續保留下來。

存取字串、數字或布林值的屬性時臨時建立臨時物件稱為包裝物件。

我們可以顯示建立一個字串物件然後增添它的屬性,自然該屬性會一直保留下來:

var str = "hello world";var objs = new String(str); = 100;var t = ; //t將被賦值為100

js會在必要時將包裝物件轉換為原始值因此顯示建立的物件和其對應的原始值常常但不總是表現的一樣。==運算子將原始值和其包裝物件視為相等;但===全等運算子將他們視為不等;另外通過typeof運算子可以看到原始值和包裝物件的不同。

希望本文所述對大家的javascript程式設計有所幫助。