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 )