一道常见的面试题
```
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
```
网友评论