function currying(fn) {
  return function curried(...args1) {
    if (args1.length >= fn.length) {
      return fn.apply(this, args1);
    } else {
      return function (...args2) {
        return curried.apply(this, [...args1, ...args2]);
      };
    }
  };
}


function sum(arg1, arg2, arg3, arg4, arg5) {
  return arg1 + arg2 + arg3 + arg4 + arg5;
}

const sumCurried = currying(sum);

console.log(sumCurried(1)(2)(3)(4)(5));
console.log(sumCurried(1, 2, 3)(4, 5));
最后修改:2022 年 08 月 11 日 11 : 09 AM
如果觉得我的文章对你有用,请随意赞赏