JSFiddle - React, Tailwind, and code Playground

by yakun chen

JavaScript

function curry(func, minArgs) {
    if (minArgs == undefined) {
        minArgs = 1;
    }

    function funcWithArgsFrozen(frozenargs) {
        // 返回函数
        return function () {
            var args = Array.prototype.slice.call(arguments),
                newArgs = frozenargs.concat(args);

            if (newArgs.length >= minArgs) {
                return func.apply(this, newArgs);
            } else {
                // 当没有参数传进来时, 带上旧参数, 直接返回
                return funcWithArgsFrozen(newArgs);
            }
        };
    }

    return funcWithArgsFrozen([1,2,3]);
}

curry(function() {alert()}, 5,6,7 )