function curry(fn) {
return function curried(...args) {
if(args.length < fn.length) {
// 主要是这里返回一个函数等待接受剩余的参数
return function(...rest) {
return curried(...args.concat(rest))
}
} else {
return fn(...args)
}
}
}
function add(num1, num2, num3) {
return num1 + num2 + num3
}
const curryAdd = curry(add)
curryAdd(1)(2)(3) // 6
网友评论