一道常見的面試題
```
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; // 返回一個(gè)函數(shù)
}
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
```