柯里化

作者: 小码农_影 | 来源:发表于2022-03-16 14:50 被阅读0次

    柯里化会让一个多参数的函数转换成单参数的函数: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);
        }
      }
    }
    

    相关文章

      网友评论

          本文标题:柯里化

          本文链接:https://www.haomeiwen.com/subject/fdyydrtx.html