function curry(fn){
function curried(...args) {
if(args.length >= fn.length){
return fn.apply(this, args);
}else{
const tempFn = function(...moreArgs){
return curried.apply(this, args.concat(moreArgs));
};
const _this = this;
tempFn.execute = function(...moreArgs){
return fn.apply(_this, args.concat(moreArgs))
};
return tempFn;
}
};
return curried;
}
function addThreeNumbers(a, b, c, d) {
a = a || 0;
b = b || 0;
c = c || 0;
d = d || 0;
return a + b + c + d;
}
const curriedAdd = curry(addThreeNumbers);console.log(curriedAdd(1)(2).execute())
函数柯里化
最新推荐文章于 2024-10-15 09:57:04 发布