javascript中 var a = new Object(); a.valueof();和a.toString()有什么区别

如题所述

这两个都是对象的方法:

toString:准确的说是返回对 对象描述的字符串。当然也可以是任何你想要的东西,如果这个对象是你自己创造的,你完全可以重写这个方法。
valueOf:一般情况下返回一个值,至于这个值是个什么东西,完全取决于编写代码的人。
toString的用途在将对象描述清楚(现实是很难说清楚的),valueOf返回的值将用于对象(简写的时候)参与的运算。
<script>
var obj={}
obj.toString=function(){
return 'this is a test';
}
obj.valueOf=function(){
return 1;
}
alert(obj) //this is a test

alert(obj+2);//3,如果没有valueOf,则弹出this is a test2
</script>

当没有valueOf的时候,会自动调用toString参与运算。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-22
a.valueof()没见过 会报错

a.toString()=[object Object]
第2个回答  2012-09-22
有些类型没有带valueOf方法,但所有类型都带有tostring方法;
如果对象带有valueOf方法时,先调用valueof方法,如得不到值再调用tostring方法;
相似回答