1.概念
- 当一个函数有多个参数的时候先传递一部分参数调用它(这部分参数以后永远不变)
- 然后返回一个新的函数接收剩余的参数,返回调用结果
2.简单实现函数的柯里化
// 实现 lodash curry方法
function curry(func){
return function curriedFn(...args){
// 判断实参和形参的个数
if(args.length < func.length){
return function(){
return curriedFn(...args.concat(Array.from(arguments)));
}
}
return func(...args);
}
}
function getSum(a, b, c){
return a + b + c;
}
const curried = curry(getSum);
console.log(curried(1, 2, 3));
console.log(curried(1)(2, 3));
console.log(curried(1, 2)(3));