рони,
// ну прости, название поумнее придумать не смог ))
function cachify (func) {
var args = [];
return function () {
arguments.length && (args = [].slice.call(arguments, 0));
return func.apply(this, args);
};
}
function foo (a, b) {
return a + b;
}
var test = cachify(foo);
console.log(test(1, 7)); // 8
console.log(test()); // 8
console.log(test(2, 3)); // 5
console.log(test()); // 5