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

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

WBOY
發布: 2016-05-16 16:07:15
原創
1139 人瀏覽過

本文實例講述了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程式設計有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板