// 柯里化的实现
function add (a, b, c) {
return a + b + c
}
function curry (fn) {
function curried(...arg1) {
if (arg1.length >= fn.length) {
return fn.apply(this, arg1)
} else {
function curried2 (...arg2) {
return curried.apply(this, [...arg1, ...arg2])
}
return curried2
}
}
return curried;
}
const addCurry = curry(add);
console.log(addCurry(1, 2, 3));
console.log(addCurry(1)(2)(3));
console.log(addCurry(1, 2)(3));
函数柯里化
2024-06-14 23:12:05 44 阅读