柯里化

柯里化会让一个多参数的函数转换成单参数的函数: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);
    }
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容