currying 柯里化

190 阅读1分钟
function currying(fn,length){
    length =length || fn.length;
    return function(...arg){
        if(arg.legth>=length){
            return fn.apply(this,arg)
        }else{
            return currying(fn.bind(this,...arg),length-ary.length)
        }
    }
}
let f3=function(a,b,c){
    return a+b+c
}
let add=currying(f3)
    add(1)(2)(3) // 6
    add(1,2)(3)  // 6
    add(1)(2,3)  // 6
    add(1,2,3)   // 6