SOURCE

function curry(fn,argLength,argList) {
  return function (a) {
    let newargList = [a]
    if(argList){
      newargList = argList.slice(0)
      newargList.push(a)
    }
    return argLength === 1 ? fn.apply(this, newargList) : curry(fn, argLength - 1, newargList)
  }
}

function addTwoNum(a,b) {
  return a+b
}
function addThreeNum(a, b,c) {
  return a + b + c
}

let curryAdd = curry(addThreeNum,3)
let oneAdd = curryAdd(1)
let oneAddtwoAdd = oneAdd(2)
console.log(oneAdd)
oneAdd(6)
console.log(oneAddtwoAdd(3))
console 命令行工具 X clear

                    
>
console