臨時對象創(chuàng)建后被銷毀
1. var str = "string"; 2. str.t = 5; //5 3. alert(str.t) //undefined 請問:定義基本類型str,步驟2中把基本類型str當(dāng)做對象訪問,解釋器創(chuàng)建屬性t并賦值成功后就銷毀,后面代碼也不能用,那創(chuàng)建的這個屬性有什么用????
1. var str = "string"; 2. str.t = 5; //5 3. alert(str.t) //undefined 請問:定義基本類型str,步驟2中把基本類型str當(dāng)做對象訪問,解釋器創(chuàng)建屬性t并賦值成功后就銷毀,后面代碼也不能用,那創(chuàng)建的這個屬性有什么用????
2016-05-15
舉報
2016-05-15
1.?var str = "string"; 這個str是基本類型string,2.?str.t = 5 基本類型怎么會有屬性和方法呢? 因為此時js引擎中會自動創(chuàng)建一個對象,即 var str = new String('string');然后再調(diào)用這個對象的方法和屬性,你的 str.t = 5 語句確實沒問題,但是str (這里我叫做0號)這個對象,僅僅在代碼執(zhí)行的一瞬間被創(chuàng)建,然后馬上被銷毀,3.??alert(str.t)?//undefined 此時的str.t 又會創(chuàng)建一個新的str對象(這個就是1號),和之前創(chuàng)建的str對象(0號)是不同的對象,而這個新的str對象(1號)剛創(chuàng)建,哪來的t屬性?所以會彈出?undefined