柯里化的简单概念:只传递给函数一部分参数来调用它,让它返回一个函数去处理其他的参数。
参数个数确定的函数的柯里化
function add(a){
return function(b){
return function(c) {
return a+b+c;
}
}
}
add(1)(2)(3) //6
参数个数不确定的函数的柯里化
function add(a){
var sum = 0;
function _add(a) {
if(a!=undefined){ //参数为空,证明处理完了
sum+=a;
return _add
}else{
return sum;
}
}
return _add(a);
}
add(1)(2)(3)(4)() //10