> You should not in general mutate shared prototype state via one of N 
> delegating objects. It leads to trouble.

What’s the difference to a global variable? I always thought about an instance 
in JavaScript as being composed of a non-shared object and a shared 
meta-object. Why should the former be able to change its state, but not the 
latter? Is there a fundamental difference between object and meta-object in 
this case?

>> The prototype seems to be the best location for shared data (such as the 
>> number of instances of a class).
> 
> Counting instances can't be done without leaking GC non-determinsm, so this 
> is a bogus example. Can you come up with another? Shared mutable state in 
> prototypes that is visibly mutable by means of a reference to one of N 
> delegating objects  is usually a bug.


One thing I did in pre-enum days in Java was to define constants and collect 
all values at the same time:

const red = new Color("FF0000");
const green = new Color("00FF00");
Color.prototype.getAllColors().forEach(...);

But you could also produce the colors with a factory.

-- 
Dr. Axel Rauschmayer

[email protected]
twitter.com/rauschma

home: rauschma.de
blog: 2ality.com



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to