valueOf为对象的原始值,通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。
如果重写了valueOf和toString方法,在涉及到运算时,会优先调用valueOf方法,涉及到显示时,会优先调用toSting方法
如果只重写了valueOf()或者toString()方法,则调用该方法,并将返回值用Number()转换。
如果两个方法都重写了,则调用valueOf(),并将返回值用Number()转换。
var obj = {
num:1,
toString : function(){
return this.num+1;
},
valueOf : function(){
return this.num+2;
}
}
console.log(obj==2);//false
alert(obj)//2