Skip to content
大纲

柯里化

将一个接受多个参数的函数转换为一系列使用一个参数的函数;

优势

  1. 参数复用
  2. 延迟执行
  3. 逻辑复用

示例

js
function add(a, b, c) {
  return a + b + c;
}

function currey(fn) {
  return function exec(...arr) {
    if (fn.length <= arr.length) {
      return fn.apply(this, arr);
    } else {
      return exec.bind(this, ...arr);
    }
  };
}

const t = currey(add);
console.log(t(1)(2, 3));

Released under the MIT License.