[勘誤]-4-6 對象標簽、對象序列化
4-6 對象標簽、對象序列化 [未更新視頻]
var?obj?=?{x:1,?y:2}; obj.toString?=?function(){return?this.x?+?this.y;}; obj.valueOf?=?function(){return?this.x?+?this.y?+?100} "result"?+?obj;?//?這里是result103,而不是result3
JavaScript中的二元+操作符,若操作數(shù)為對象,則嘗試轉(zhuǎn)換為基本類型。優(yōu)先級是先找valueOf,再找toString。
注意到,若valueOf/toString返回的不是基本類型,而是對象,則會被忽略。
var?obj?=?{x:1,?y:2}; obj.toString?=?function(){return?this.x?+?this.y;}; obj.valueOf?=?function(){return?{x?:?1}};?//?不可用的valueOf "result"?+?obj;?//?"result3",?因為valueOf無效,使用toString作為結(jié)果返回
若valueOf/toString均不可用,則報TypeError異常。
var?obj?=?{x:1,?y:2}; obj.toString?=?function(){return?{};};?//?不可用的toString obj.valueOf?=?function(){return?{x?:?1}};?//?不可用的valueOf "result"?+?obj;?//?Uncaught?TypeError:?Cannot?convert?object?to?primitive?value
2015-01-29
感謝@穹海鴻鷹 網(wǎng)友提出此問題。
2017-08-29
必須給32個贊,期待Bosn老師的更多分享!
2016-11-19
一語中的
2015-10-31
4-3 屬性操作,17頁中間的or 應(yīng)該是 and
2015-07-28
不錯~
2015-03-19
二的十次方個贊
2015-03-07
贊一個