就是闭包和递归结合一下就OK
f(1)() // 1
f(1)(2)(3)() // 6
f(1)(2)(3)(4)() // 10
function sum(){
var num=0;
Object.values(arguments).map(i=>{return num+=i})
return function su(){
if(arguments[0]){
Object.values(arguments).map(i=>{return num+=i})
return su
}else{
return num;
}
}
}
console.log(sum(1)(4)(6)())
console.log(sum(1,2,3)(11)())
console.log(sum(1,2,3)(12)(1,2,3)())
console.log(sum(1,2,3)())