29 11 2025

function curry(fn) {

  // fn.length 是函数fn的参数个数

  return function curreid(...args) {

    console.log(fn.length);

    if (args.length >= fn.length) {

      return fn.apply(this, args);

    } else {

      return function (...args2) {

        return curreid.apply(this, args.concat(args2));

      };

    }

  };

}


function add(a, b, c) {

  return a + b + c;

}

const curreidAdd = curry(add);

// console.log(curreidAdd(1)(2)(3)); // 6

// console.log(curreidAdd(1, 2)(3)); // 6

// console.log(curreidAdd(1)(2, 3)); // 6

undefined



延伸阅读
  1. 闭包
  2. 致敬每一个可爱的研发
发表评论