概念:存取字符串、數(shù)字或布爾值的屬性時(shí)臨時(shí)創(chuàng)建的對(duì)象稱作包裝對(duì)象嗅义。
平時(shí)可能會(huì)看到下面這種語(yǔ)句稠腊。
var s = "hello";
var l = s.length; // l = 5;
字符串既然不是對(duì)象惫霸,那么為什么它會(huì)有屬性呢?
只要引用了字符串 s 的屬性耘分,JavaScript就會(huì)將字符串值通過調(diào)用 new String()的方式轉(zhuǎn)換成對(duì)象举塔,這個(gè)對(duì)象繼承了字符串的方法,并被處理屬性的引用求泰。一旦引用結(jié)束央渣,這個(gè)新創(chuàng)建的對(duì)象就會(huì)被銷毀。
看到上面的例子渴频,t 的結(jié)果是 undefined 芽丹。s.len創(chuàng)建了一個(gè)臨時(shí)字符串對(duì)象,并賦值 len = 4 卜朗,隨即銷毀了這個(gè)對(duì)象拔第。當(dāng)嘗試讀取len屬性,這個(gè)屬性自然不存在场钉。
需注意的是蚊俺,可以通過String(),Number()或Boolean()構(gòu)造函數(shù)來顯示創(chuàng)建包裝對(duì)象逛万。
文章參考:《JavaScript權(quán)威指南》第六版