Я реализовал функцию 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
регистрирует 1 10
.Я не понимаю, почему он возвращает undefined
.