stay hungry stay foolish

js函数柯里化

柯里化的简单概念:只传递给函数一部分参数来调用它,让它返回一个函数去处理其他的参数。

参数个数确定的函数的柯里化

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