鏈式呼叫 f(1)(2)(3) f(1,2)(3,4,5)

gamebus發表於2021-09-09

=======================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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2815016/,如需轉載,請註明出處,否則將追究法律責任。

相關文章