function Foo(a, b) { this.a = a; this.b = b; this.sum = { valueOf:function(){ return a+b},//只写这一行,弹出:[Object Object] toString:function(){return a+b}//只写这一行,也会弹出:3,为会么要同时写这两行呢?} } alert((new Foo(1,2)).sum); //同样得到3
// valueOf 方法 很少显式使用,一般都是被自动调用var obj = {};
alert(obj == 3); // 当然不是 true;
obj.valueOf = function() { return 3; }; // 改了 valueOf 方法,就不一样了
alert(obj == 3);