class properties inheritance

Frankie Bagnardi f.bagnardi at gmail.com
Sun Dec 28 14:14:06 PST 2014


That's why you call super(); as the first line in the constructor.

On Sun, Dec 28, 2014 at 2:42 PM, Антон Шувалов <anton at shuvalov.info> 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
> 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/20141228/c15cd0b6/attachment-0001.html>


More information about the es-discuss mailing list