No one care to comment? Hope I didn't mistake how super works.

> On May 8, 2015, at 11:05 AM, Glen Huang <[email protected]> wrote:
> 
> TLDR: If `this` is used without `super` (which should be statically 
> analyzable), let it refer to Object.create(new.target.prototype). Otherwise, 
> let super creates what it refers to.
> 
> I know the reason to force `super` in derived class's constructor is to make 
> sure `this` refers to the exotic object the base class might allocate.
> 
> But I bet in real world, extending base classes who only create ordinary 
> objects is more common than extending those create exotic objects. And forget 
> to call super is going to be frequent mistake. In es5, when you extend a 
> class like this
> 
> ```js
> function Foo() {
>       Bar.call(this)
> }
> Foo.prototype = Object.create(Bar.prototype);
> ```
> 
> `this` refers to Object.create(new.target.prototype). So I wonder if we can 
> keep this behavior, making things less surprising when people transit to es 
> 2015?

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

Reply via email to