编辑代码

// 柯里化函数
// 重点:闭包保存参数,递归累加参数,判断参数长度
function curry(fn, ...args) {
    const fnLen = fn.length
    const argsLen = args.length

    if (argsLen < fnLen) {
        return function (...args2) {
            return curry(fn, ...args, ...args2)
        }
    } else {
        fn(...args)
    }
}

function fn(a, b, c) {
    console.log(a + b + c)
}
const curFn = curry(fn)
curFn(1)(3)(6)