
всё в одном флаконе замечательно ... но хочется варианта с каким нибудь this, если конечно он возможен.
function foo(a, b) {
var func = function (one, two) {
return (one || a) + (two || b)
}, args = [];
return function () {
arguments.length && (args = [].slice.call(arguments, 0));
return func.apply(this, args)
}
};
var test = foo(1,7);
alert(test())
alert(test())
test(2, 3)
alert(test())
alert(test())