Лично я бы сделал примерно так:
function foo(){
if( !foo.values ) foo.values = [];
if( arguments.length === 0 )
return foo.values.shift();
foo.values.push.apply( foo.values, arguments );
return foo;
};
foo( "Hello", "wtf" );
alert( [ foo(), foo() ].join( " " ) );
Динамики хоть отбавляй