0

遇到一个题,通过柯里化的思想实现参数累加求和,类似于add(1)(2)(3)返回6,但是我写的demo,valueOf不会被调用

function add() {
    var args1 = [...arguments]
    var fn = function () {
        var args2 = [...arguments]
        return add.apply(null,args2.concat(args1))
    }

    fn.valueOf = function () {
        return args1.reduce((a, b) => a + b)
    }
    return fn
}
console.log(add(1, 2, 3, 4, 5))

https://codepen.io/guiqide/pe...

2019-08-14 提问
1 个回答
0

valueOf()方法和toString()方法是一样的,都会在后台进行隐式的调用,比如类型转换的时候。
比如: console.log(add(1, 2, 3, 4, 5) + '') 或者,你在return的时候,直接 return fn +''也可以达到你的效果

撰写答案

推广链接