函数柯里化

咋一听函数柯里化贼高级,然后在了解之后就挺简单的,就是把一个多参数的函数改成闭包,不喜欢多哔哔,直接上例子

``` //用万能的add函数 //一般的add函数 function add(x, y, z) { return x + y + z; } add(1,2, 3) //6 ```

函数柯里化

function curry(fn) {
  const judge = (...args) => {
    if(args.length === fn.length) return fn(...args); // 使用了闭包,会一直保存fn,并且函数的length是参数的个数
    return (...arg) => judge(...args, ...arg);
  }
}

const addcurry = curry(add);
addcurry(1)(2)(3) // 6
posted @ 2021-07-25 19:49  卿六  阅读(45)  评论(0编辑  收藏  举报