柯里化

柯里化会让一个多参数的函数转换成单参数的函数:fn(a,b,c) ——> fn(a)(b)(c )

function sum(a,b,c,d,e,f){
  return a+b+c+d+e+f;
}
sum(1,2,3,4,5,6)
// 假设有一个函数curry可以做到柯里化
var aaa = curry(sum)(1,2)(3,4)(5,6);
console.log(aaa);
//curry函数的实现
function curry(fn,arr=[]){
  let len = fn.length; //函数的长度是函数形参的个数
  return function (...args){
    let arrs = [...arr,...args];
    if(arrs.length < len){
      return curry.call(this,fn,arrs);
    }else{
        return fn(...arrs);
    }
  }
}

你可能感兴趣的:(柯里化)