> Le 28 déc. 2014 à 23:14, Frankie Bagnardi <[email protected]> a écrit : > > That's why you call super(); as the first line in the constructor.
The true rule is not: "call super() in the first line in the constructor"; it is: "don't reference `this` before calling the super constructor". —Claude > > On Sun, Dec 28, 2014 at 2:42 PM, Антон Шувалов <[email protected]> wrote: > Hi, guys! I'm confused with class properties. With prototype chains I can > setup kinda default values which being replaced by values from children. But > replacing become hard to work with classes. For example, we have simple > module, some backbone view: > > ```js > class BaseView extends Backbone.View { > constructor() { > this.tagName = 'div'; > super(); // create element from this.tagName value > } > } > ``` > > And now we create inherited view: > > ```js > class Span extends BaseView { > constructor() { > this.tagName = 'span' > super(); > } > } > ``` > > But all `this` variables will be replaced by parent, not by child. It's kinda > weird. Another example with prototype chains works fine: > > ```js > var BaseView = Backbone.View.extends({ > tagName: 'div' > }) > ``` > > ```js > var Span = Backbone.View.extends({ > tagName: 'span' > }); > ``` > > How I can do similar things with es6 classes? Sorry if this question is > already discussed. > _______________________________________________ > 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 _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

