Symbols (private or public, don't forget the latter) are crucial to ES6
and not going away :-|.
Besides the property access and GC costs of WeakMaps (which are probably
fine, but at least inevitable, when you really do need a WeakMap),
symbols allow coordination between friendly objects by name, without
exposing a map full of names, plural.
Finally, symbols allow property access to be abstracted functionally:
function get(obj, key) { return obj[key]; }
function set(obj, key, val) { obj[key] = val; }
No such abstraction with weakmaps.
Different tools in your belt are a good thing. We don't fault the
screwdriver for being a poor hammer, or vice versa!
/be
Kevin Smith wrote:
They both have their place since there's many uses for both
inherited and non-inherited private values.
Can we see some demonstrated use-cases for which WeakMaps are
insufficient, and private properties are? I continue to hear that
private symbols are a great idea without any discussion of the
tradeoff: a more complicated (and more difficult to reason about)
runtime object model.
{ Kevin }
_______________________________________________
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