鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ js中關(guān)于obj加法問題

js中關(guān)于obj加法問題

今天在看《高程3》的加法部分(P48)時候看到

clipboard.png

提到

如果一個操作數(shù)是對象...............則會調(diào)用toString方法獲得相應(yīng)的字符串值.

我就試了一下 以下代碼

var bbb = {
  i: 10,
  toString: function() {
    console.log('toString');
    return this.i;
  },
  valueOf: function() {
    console.log('valueOf');
    return this.i;
  }
}

bbb + 1// valueOf 11
bbb + '1' // valueOf 101

為什么不是我預(yù)想的 toString,而是執(zhí)行了 valueOf。 是我理解錯了嗎?

回答
編輯回答
抱緊我

這里的toString()方法不是這個實(shí)例obj內(nèi)的方法
是Object原型的方法
Object.prototype.toString()
https://developer.mozilla.org...

2017年1月2日 22:45
編輯回答
凝雅

那是因?yàn)槟?code>valueOf直接是基本類型,所以不需要toString
你改成這樣就發(fā)現(xiàn)會先valueOf,然后還會toString

  valueOf: function() {
    console.log('valueOf');
    return this;
  }
2017年2月21日 11:49