Is this something that Sencha would be willing to reconsider?
I agree that this is indeed pretty puzzling for programmers coming from a different background and applying classic OOP principles and terms to prototype-based inheritance.
Any object can override the property by re-assigning a different value (this.property=..). The property will then be owned by that object alone.
It has been pointed out in this thread before, that for immutable values the behavior appears to be that of classic-OOP class fields.
The confusion starts once you do not *reassign* (override) the property value but manipulate/modify it.
How could Ext provide a solution to this?
Looking at classic OOP and compiled languages (or languages that have the construct of a 'class'), you have to consider that the code statement that defines the (default) value for a class field is re-evaluated each time an instance of the class is created.
One suggestion was to clone the object and assign a copy to every object that is created as instance of this class. But as I pointed out in my previous post, cloning only works for simple objects.
You will immediately find that it doesn't make sense sacrificing (huge) performance to clone to original object for every instance of Foo, instead of just creating a new one inside the class' constructor.