函数柯里化

柯里化是把接受多个参数的函数变换成接受一个单一参数的函数,并且返回接受余下参数的新函数的技术

例如写一个sum函数,让sum(1)(2)返回3

function sum(a) {
  return function (b) {
    return a + b;
  }
}

这就是柯里化 

// js 中的柯里化:封装,作用:参数复用,延迟计算
//最终目的:传入多少个参数,都可以使用

js版本
function curry(fn){
    let args = Array.prototype.slice.call(arguments,1)
    return function{
       let newArgs=args.concat(Array.prototype.slice.call(arguments))
       return fu.apply(null, newArgs)
  }
}

es6版本

    function curry(fn){
      return currying(...args){
         fn.length>=args.length?(...args1)=>currying(...args,...args1):fn(...args)
   }
}
原文地址:https://www.cnblogs.com/yourName/p/12408036.html