On Sep 12, 2014 6:39 PM, "Jason Orendorff" <[email protected]> wrote: > > On Thu, Sep 11, 2014 at 4:15 PM, Allen Wirfs-Brock > <[email protected]> wrote: > > `new^` is lexically scoped, just this `this` and `super`. If an arrow > > function references `new^` it is the value of the closest lexically > > enclosing constructor function (a function that implements [[Construct]]). > > > > Just like [[Get]] and [[Set]], the trap for [[Construct]] is extended to > > include a "receiver" parameter. > > Thanks. The analogy to [[Get]] and [[Set]] helps a lot. > > (Superficially, possible alternatives to `new^` could include > `class()` and `class this`.) > > One more minor question. Suppose I mistakenly type: > > class ColorPoint extends Point { > constructor(x, y, color) { > this = super(x, y); // oops: should be `new super(x, y)` > this.color = color; > } > } > > Then `new ColorPoint(0, 0, "red")` throws a ReferenceError, because > `super(x, y)` implicitly uses `this`. Is that right? Asking just > because it seems like it'd be an easy mistake to make.
It will [[Call]] Point instead of [[Construct]] which may or may not work depending on how Point is defined. > > -j > _______________________________________________ > 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

