Вы можете взять функцию в качестве обратного вызова для требуемой операции, например sum
, которая принимает два операнда и массив для значений, и функцию, которая возвращает себя.
Для получения окончательного значения вам нужнореализовать метод toString
, который возвращает окончательное значение.
function sum(a, b) {
return a + b;
}
function partial(fn) {
function f(v) {
stack.push(v);
if (stack.length === fn.length) {
stack = [fn(...stack)];
}
return f;
}
f.toString = function () { return stack[0]; };
var stack = [];
return f;
}
console.log(partial(sum)(3)(4)(5));