題源
百度技術一面
題目
柯里化實現累加函數
解答
function createCurry(func, args) {
var arity = func.length;
var args = args || [];
var fn = function () {
var args_fn = [].slice.call(arguments);
args = args.concat(args_fn);
if (args.length < arity) {
return createCurry.call(this, func, args);
}
return func.apply(this, args);
}
return fn;
}
function sum(a, b, c) {
return a + b + c;
}
var newsum = createCurry(sum)
console.log(newsum(11)(14)(12));