柯里化 - Currying

柯里化 - Currying

作用

f(a, b, c) 调用形式f(a)(b)(c) 调用形式,它对函数只做转换,不做执行

实现

function curry(func) {

  return function curried(...args) {
    if (args.length >= func.length) {
      return func.apply(this, args);
    } else {
      return function(...args2) {
        return curried.apply(this, args.concat(args2));
      }
    }
  };

}

优点

  • 多参数复用性
  • 函数式编程

参考