我以curry
这种方式实现了一个功能:
function curry (fn) {
var slice = Array.prototype.slice,
args = slice.apply(arguments, [1]);
return function () {
fn.apply(null, args.concat(slice.apply(arguments)));
};
}
当我使用上述功能执行以下操作时
function add (x, y) {
return x + y;
}
var inc = curry(add, 1);
console.log(inc(10));
它记录undefined
。11 不是预期的输出吗?我的代码有什么问题?
注意:在函数console.log(x, y)
内部使用add
logs 1 10
。我不明白为什么它会返回undefined
。