SOURCE

function curry(fn){

    const fnArgsLength=fn.length

    let args=[]

    function calc(...newArgs){

    args=[...args,...newArgs]

    if(args.length<fnArgsLength){
        //参数不够,返回函数
        return calc
    }else {
        //参数够了,返回执行结果
        return fn.apply(this,args.slice(0,fnArgsLength))
    }
        }
 
    return calc

}

function add(a,b,c){
    return a+b+c
}

const curryAdd=curry(add)
const res1=curryAdd(10)(20)(30)
console.log(res1)
console 命令行工具 X clear

                    
>
console