实现函数柯里化

函数柯里化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function curry(fn) {
function curried(...arg) {
// 判断传入的参数是否大于等于函数需要的参数 大于等于则直接执行函数
if (arg.length >= fn.length) {
return fn.apply(this, arg);
} else {
// 小于则继续递归执行curried函数,直到满足条件
return function (..._arg) {
return curried.apply(this, [...arg, ..._arg]);
};
}
}
return curried;
}