=======================f(1)(2)(3)=============
function add(x){ var sum=x;//暂存结果 let tmp=function(y){ sum=sum+y; return tmp;//关键步骤 返回自身 } tmp.toString=function(){ return sum; } return tmp; } console.log(add(1)(2)(3)(4))//f 10 //返回函数 1+2+3+4=10
=========== f(1,2)(3,4,5)========
let result=0; function add(){ let arr=[...arguments]; if(!arr.length) return result; let sum=arr.reduce((prev,cur)=>{ return prev+cur; })*(result||1); result=sum; add.toString=function(){ return sum } return add } console.log(add(1)(2,3)(4))//f 20 //返回函数 1*(2+3)*(4)=20