> On Apr 10, 2015, at 8:06 PM, Axel Rauschmayer <a...@rauschma.de> wrote: > > ... > If you do not call `super()`, you only get into trouble if you access `this` > in some manner. Two examples: > > ... > > Therefore, there are two ways to avoid typing super-constructor calls. > > First, you can avoid accessing `this` by explicitly returning an object from > the derived class constructor. However, this is not what you want, because > the object created via `new B()` does not inherit `A`’s methods. > > ```js > // Base class > class A { > constructor() {} > } > // Derived class > class B extends A { > constructor() { > // No super-constructor call here! > > return {}; // must be an object > } > } > ``` > > Second, you can let JavaScript create default constructors for you: > > ```js > // Base class > class A { > } > // Derived class > class B extends A { > } > ``` > > This code is equivalent to: > > ```js > // Base class > class A { > constructor() {} > } > // Derived class > class B extends A { > constructor(...args) { > super(...args); > } > } > ```
or third, about the super class to make sure that you correctly initialize the instance to work with inherited methods: ‘’’js class B extends A { constructor(…args) { let newObj = Reflect.construct(Object, args, this.target); newObj.prop = something; return newObj; } } ``` Allen _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss