I've seen mentions in the recent thread that the goal of the "Private Names" 
proposal was to support "private fields" for objects.  While that may be a goal 
of some participants in the discussion, it is not what I would state as the 
goal.

I have two specific use cases in mind for "private names":
1) Allow JavaScript programmers, who choose to do so, to manage the direct 
accessibly of object properties.  This may mean limiting access to methods of a 
particular instance, or to methods of the same "class", or to various friends 
or cohorts, etc.
2) Allow third-party property extensions to built-in objects or third-party 
frameworks that are guaranteed to not have naming conflicts  with unrelated 
extensions to the same objects.

Of these two use cases, the second may be the more important.

Note that I emphasized "properties" rather than a new concept such as "private 
fields".  I believe we should be trying to build upon the conceptual foundation 
of the existing JavaScript object model whenever possible. We should strive to 
avoid introducing new concepts such as non-property fields into the object 
model.  (see http://www.wirfs-brock.com/allen/posts/43  for further thoughts on 
this topic.)

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

Reply via email to