This is what the private names proposal is for. The page is a little stale but
Sam Tobin-Hochstadt is hoping to give it some love in the not-too-distant
future.
http://wiki.ecmascript.org/doku.php?id=strawman:names
The names go in the object, the link is strong rather than weak, the property
is non-enumerable, and even better than string keys, you can't guess the name
(either on purpose or by accident) unless you have a reference to the name
object. So it's a more reliable version of what you described, but still
straightforward to use.
Dave
On Sep 2, 2010, at 9:19 AM, Mike Shaver wrote:
> On Thu, Sep 2, 2010 at 12:46 AM, Erik Corry <[email protected]> wrote:
>> And this is as it should be. As it stands the weak map can be used as
>> an object with private members. The object key acts as a capability
>> that controls whether or not you have access to the private member.
>
> If I were to be using an object with private members, I would
> certainly expect that those members would keep their values alive.
>
> Wouldn't it be better to just use a regular object, and add private
> members via defineProperty to make them non-enumerable?
>
> I'm not in favour of WeakMap enumerability, really, but it seems that
> there's an easier way to address this particular use case.
>
> Mike
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss