add(1)(2)(3)

2021-03-05  本文已影响0人  wrs瑞

一道常见的面试题

```

function add () {

    let res = [...arguments].reduce((a, b)=>{

        return a+b;

    }, 0);

    let temp=function() { // 使用闭包

        if(arguments.length){

            res+=[...arguments].reduce((a, b)=>{

                return a+b;

            }, 0);          // 累加

            return temp;         

        } else {

            return res;

        }

    }

    temp.toString = function() { // 重写toSting() 方法

        return res;

    }

    return temp; // 返回一个函数

}

console.log(add(1,2,3)()) //6

console.log(add(1,2,3)) //f 6

console.log(add(1)(3)) // f 4

console.log(add(1)(3)(5)()) //9

```

上一篇下一篇

猜你喜欢

热点阅读