鍍金池/ 問答/HTML/ 關(guān)于valueOf、toString還有及柯里化函數(shù)在不同瀏覽器下的輸出問題?

關(guān)于valueOf、toString還有及柯里化函數(shù)在不同瀏覽器下的輸出問題?

寫了一個(gè)函數(shù),如下:

function add(){
    let arr = [];
    arr = arr.concat(Array.prototype.slice.apply(arguments))
    let fun = function(){
        arr = arr.concat(Array.prototype.slice.apply(arguments))
        return fun
    }
    fun.toString = function(){
        console.log(222)
        return arr.reduce(function(total, num){
            return total+num
        }, 0)
    }
    return fun
}
console.log(add(1,2)(2,3)(3))

函數(shù)的作用就是累加參數(shù)求值,但是問題來了,下面是chrome的輸入:

clipboard.png

有兩個(gè)問題:

  1. 為什么不是直接輸出11,而是f 11
  2. 為什么不是先輸出222呢,感覺是要先做類型轉(zhuǎn)換再打印呢

問題并沒有結(jié)束,同樣的代碼在FF上的輸出:

clipboard.png

怎么把fun函數(shù)輸出來了......

還有node輸出:

clipboard.png

徹底懵逼了......

回答
編輯回答
詆毀你

f 11 在chrome里面就是輸出函數(shù)字面量的意思吧?

2017年4月20日 12:28
編輯回答
綰青絲

做了一個(gè)小總結(jié):https://segmentfault.com/a/11...

2017年2月5日 23:57