实现函数柯里化,就是判断当前接受的参数与函数的参数长度(fn.length函数参数长度)是否一致,如果一致就返回函数执行结果。否则继续返回柯里化函数。
function fn1(a,b,c) {
return a*b*c;
}
function currying1(fn1,...args){
return function () {
let res=[...args,...arguments]
if(res.length<fn1.length){
return currying1(fn1,...res )
}else{
return fn1(...res)
}
}
}
const ch=currying1(fn1);
console.log(ch(2,2)(3))
console.log(ch(2)(2)(3))