課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
老師,按照你說的str加.t的屬性時候,先把str對象轉(zhuǎn)化成一個臨時的包裝對象,再次訪問會被銷毀,那豈不是str.length也不能訪問?
2015-03-06
源自:JavaScript深入淺出 1-4
正在回答
str是string(基本類型),本身是沒有方法的。
當嘗試把基本類型的str當做對象一樣訪問時,例如:str.length;?
解釋器會創(chuàng)建一個臨時的包裝對象,偽代碼:
[[tempObj]] = new String(str);
[[tempObj]].length; // 返回具體的length;
delete [[tempObj]]; // 銷毀臨時對象
重復訪問str.length會重復創(chuàng)建這個臨時對象。
所以str.t賦值可以成功,但再次訪問str.t返回undefined,因為每次創(chuàng)建的臨時包裝對象都是不同的。
qq_昔顏
明白了
舉報
由淺入深學習JS語言特性,且解析JS常見誤區(qū),從入門到掌握
1 回答臨時對象創(chuàng)建后被銷毀
2 回答有關(guān)臨時對象被銷毀的問題。
4 回答js包裝對象
2 回答對象創(chuàng)建方法
3 回答關(guān)于JS里的對象。創(chuàng)建函數(shù)對象和函數(shù)對象屬性的調(diào)用。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-03-09
str是string(基本類型),本身是沒有方法的。
當嘗試把基本類型的str當做對象一樣訪問時,例如:str.length;?
解釋器會創(chuàng)建一個臨時的包裝對象,偽代碼:
[[tempObj]] = new String(str);
[[tempObj]].length; // 返回具體的length;
delete [[tempObj]]; // 銷毀臨時對象
重復訪問str.length會重復創(chuàng)建這個臨時對象。
所以str.t賦值可以成功,但再次訪問str.t返回undefined,因為每次創(chuàng)建的臨時包裝對象都是不同的。
2015-03-11
明白了