Хитрость заключается в том, чтобы создать закрытую переменную и определить методы-прототипы в конструкторе, чтобы иметь возможность использовать закрытую переменную в замыкании.
Итак, это может приблизиться к тому, что вы хотите?
function Foo(){
var staticArr = [];
if (!('prototypemethodsset' in Foo)){
var proto = Foo.prototype;
proto.getArr = function(){
return staticArr;
};
proto.addArr = function(){
staticArr.push(Array.prototype.slice.call(arguments));
};
proto.prototypemethodsset = true;
}
}
var f = new Foo
, g = new Foo;
f.addArr(1,4,8,9,13,7);
g.addArr(5,7);
alert(g.getArr()); //=> 1,4,8,9,13,7,5,7
alert(f.getArr()); //=> 1,4,8,9,13,7,5,7