setPrototypeOf vs obj.__proto__ assignment

John Barton johnjbarton at google.com
Mon Apr 7 08:53:09 PDT 2014


The context for my question was Tom van Cutsem's excellent Proxy shim,
https://github.com/tvcutsem/harmony-reflect, which uses __proto__
assignment to shim Object.setPrototypeOf.  In developing Proxy code,
objects and not classes are relevant.  Directly manipulating the __proto__
is vastly superior to any solution based on es6 classes or our unfortunate
friend Object.create().

jjb


On Mon, Apr 7, 2014 at 2:34 AM, Axel Rauschmayer <axel at rauschma.de> wrote:

> I like __proto__ in object literals, as a nicer Object.create(). In that
> case, __proto__ is “the new <| operator” and really quite different from
> __proto__ as a getter and a setter.
>
> I have two uses for it:
>
> – Dict pattern { __proto__: null, ... }
> – To explain prototype chains to beginners (=> not something that would be
> used in production code).
>
> If ECMAScript 6 didn’t support classes and subclassing, it would help with
> subclassing, too.
>
>
>
>
> On Apr 7, 2014, at 11:05 , Andreas Rossberg <rossberg at google.com> wrote:
>
> > On 4 April 2014 19:49, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:
> >> __proto__ is there for legacy compatibility.
> >> setPrototypeOf should be preferred for new code
> >
> > For new code, neither should be used.
> >
> > /Andreas
> > _______________________________________________
> > es-discuss mailing list
> > es-discuss at mozilla.org
> > https://mail.mozilla.org/listinfo/es-discuss
> >
>
> --
> Dr. Axel Rauschmayer
> axel at rauschma.de
>
> home: rauschma.de
> twitter: twitter.com/rauschma
> blog: 2ality.com
>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140407/35101b9d/attachment-0001.html>


More information about the es-discuss mailing list