维基百科定义
- 在计算机科学中,柯里化(英文
Currying
),又译为卡瑞化,或加里化 - 是把接受多个参数的函数,变成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数,而且返回结果的新函数的技术
- 柯里化声称 “ 如果你固定某些参数,你将得到接受余下参数的函数 ”
总结
- 只传递给函数一部分参数来调用它,并让它返回一个函数来处理剩余的参数
- 这个过程称之为柯里化
原生实现柯里化
function TestCurrying(fn){
function curried1(...args){
//判断当前已接受参数的个数,可以参照本身需要接受的参数是否已经一致
//当已经传入的参数 大于等于 需要的参数时,就执行
if(args.lemgth >= fn.length){
return fn.apply(this, args);
}else{
//当没有达到个数时,需要创建一个新的函数,来继续接受参数
function curried2(...args2){
//接受参数后,递归调用curried1来检查参数个数是否到达
return curried1.apply(this, args.concat(args2));
}
return curried2
}
}
return curried1;
}