function add(a, b) {
return a + b;
}
var curried = curry(add);
console.log( curried(1)(2) ); // 3
给你一个简单的:
var curry = function(func) {
var len = func.length;
var getCurry = function(params) {
return function() {
var _this = this;
var next = params.concat(Array.prototype.slice.call(arguments));
if (len - next.length === 0) {
return func.apply(_this, next);
}
return getCurry(next);
};
};
return getCurry([]);
};
function add(a, b) {
return a + b;
}
var curried = curry(add);
console.log(curried(1)(2)); // 3
有空可是玩玩: fe-interview
var curryMaker = function (func) {
var slice = Array.prototype.slice,
storedArgs = slice.call(arguments, 1);
return function(newArg) {
storedArgs = storedArgs.concat(slice.apply(arguments));
return func.apply(this, storedArgs);
};
};
function add(a, b) {
return a + b;
}
var c = curryMaker(add, 1)(2)
console.log(c);