Data structures in the prototype are instantiated once per type; data structures in the constructor are instantiated once per instance. So Foo.prototype.something_ = [] will create one array shared by all Foo instances, whereas Foo = function() { this.something_ = []; } will create a new array for each Foo instance. E.g.:
Foo = function() { };
Foo.prototype.baz_ = [];
var x = new Foo(), y = new Foo();
x.unshift('hi');
alert(y.baz_[0]); // Says "hi".
Generally, you want to store methods in your prototypes, not data structures. The latter will cause lots of unexpected behavior. If you want type-level data structures, it's a much better idea to say Foo.baz_ = []; instead.
To unsubscribe from this group, send email to closure-library-discuss+unsubscribegooglegroups.com or reply to this email with the words "REMOVE ME" as the subject.