首頁 >web前端 >js教程 >javascript包裝物件實例分析_javascript技巧

javascript包裝物件實例分析_javascript技巧

WBOY
WBOY原創
2016-05-16 16:07:151151瀏覽

本文實例講述了javascript包裝物件用法。分享給大家供大家參考。具體分析如下:

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

參考以下程式碼:

var s = "hello world";
var len = s.length;

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

同字串一樣,數字和布林值也具有各自的方法:透過Number()單核心Boolean()建構函式建立臨時對象,這些方法的呼叫都是來自於這個臨時物件;然而null和undefined沒有包裝物件:存取他們的屬性會造成類型錯誤。
例如以下程式碼:

var s0 = "hello world";
s0.len = 100;
var t = s.len; //t的值将为undefined

因為第2行建立臨時物件後,立即將其銷毀;第三行透過原始的字串值建立一個新字串對象,嘗試讀取其len屬性,自然不存在。這段程式碼說明在讀取字串、數字和布林值的屬性值或方法時,表現的像物件一樣。但如果你試圖賦予其屬性賦值,就會忽略這個操作:修改只是發生在臨時物件上,而這個臨時物件並未繼續保留下來。
存取字串、數字或布林值的屬性時暫時建立臨時物件稱為包裝物件。
我們可以顯示建立一個字串物件然後增添它的屬性,自然該屬性會一直保留下來:

var str = "hello world";
var objs = new String(str);
objs.len = 100;
var t = objs.len; //t将被赋值为100

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

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn