SOURCE


function currying(fn, ...args) {
    if (args.length >= fn.length) {
        return fn(...args);
    } else {
        return (...args2) => currying(fn, ...args, ...args2);
    }
}

var fn = currying(function(a, b, c) {
    console.log([a, b, c]);
});

fn("a", "b", "c") // ["a", "b", "c"]
fn("a", "b")("c") // ["a", "b", "c"]
fn("a")("b")("c") // ["a", "b", "c"]
fn("a")("b", "c") // ["a", "b", "c"]


function currying(fn, ...args) {
    if (args.length >= fn.length) {
        return fn(...args)
    } else {
        return (...args2) => currying(fn, ...args, ...args2);
    }
}
console 命令行工具 X clear

                    
>
console