javascript包裝物件

2021-09-23 21:19:08 字數 1033 閱讀 7673

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

參考以下**:

var s = "hello world";

varlen = 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物件 包裝類

1.物件字面量 物件直面量 var obj 2.建構函式 1.系統自帶的建構函式object var obj new object 2.自定義 自定義建構函式名第乙個字母建議大寫 function car color var car1 new car red var car2 new car gre...

javascript基本包裝型別

三種基本包裝型別 boolean型別,number型別,string型別 字面量宣告方式和new宣告方式 1 boolean型別 無特定的屬性或方法 2 number型別 1 靜態屬性 直接呼叫無須new運算子 max value 最大值 min value 最小值。nan 非數字。negative...

物件包裝器

物件包裝器其實就是基本型別相對應的類 integer,long,float,double,short,byte,character,void,boolean 注意包裝類都是final型別的。所以不能修改數字引數的方法 integer i new integer 3 i 錯誤 如果想要改變此物件大小,...