valueOf():返回最適合該對象類型的原始值;
toString(): 將該對象的原始值以字符串形式返回。
這兩個方法一般是交由JS去隱式調用,以滿足不同的運算情況。
在數值運算裏,會優先調用valueOf(),如a + b;
在字符串運算裏,會優先調用toString(),如alert(c)。
代碼示例:
var abc={i:10;
valueOf:function(){return this.i+20};
toString:function(){return this.valueOf()+10};
}
alert(abc>40);//false
alert(''+abc);alert(+abc);//30,30,數值運算優先調用valueOf
alert(abc);//50,字符串運算,優先調用toString
alert('+'+abc);//+30,運算符優先
alert(Number(abc));//30,數字優於字符串
alert(String(abc));//40