今天在看《高程3》的加法部分(P48)时候看到提到如果一个操作数是对象...............则会调用toString方法获得相应的字符串值.我就试了一下 以下代码var bbb = { i: 10, toString: function() { console.log('toString'); return this.i;
}, valueOf: function() { console.log('valueOf'); return this.i;
}
}
bbb + 1// valueOf 11bbb + '1' // valueOf 101为什么不是我预想的 toString,而是执行了 valueOf。 是我理解错了吗?
2 回答
三国纷争
TA贡献1804条经验 获得超7个赞
那是因为你valueOf
直接是基本类型,所以不需要toString
。
你改成这样就发现会先valueOf
,然后还会toString
。
valueOf: function() { console.log('valueOf'); return this; }
添加回答
举报
0/150
提交
取消