Это мой ленивый погрузчик для функций:Ленивая загрузка с несколькими аргументами
var make_lazy = function (calledFunc, a, b, c, d, e, f) {
return function() {
return calledFunc(a, b, c, d, e, f)
}
};
Он работает с большинством функций, кроме этого:
function superAdd() {
return Array.prototype.slice.apply(arguments).reduce(function (a, c) {
return a + c;
}, 0);
}
Как изменить эту функцию, чтобы принимать переменное число аргументов? Я попытался использовать объект аргументов без успеха.
Где вы звоните 'superAdd'? Можете ли вы показать полный пример реализации, который не работает? –
@Josh Beam Я использую единичный тест var lazy_value = make_lazy (superAdd, 3, 5); Test.expect (lazy_value() === 15, 'Вычисляет выражение при необходимости'); – webdev5
'function make_lazy (fn, args) {return Function.apply.bind (fn, this, args);};' – dandavis