как я могу реализовать цепочку наследования? - PullRequest
0 голосов
/ 13 ноября 2018

Возникли проблемы с наследованием.Как реализовать наследование типов от одного карандаша к другому карандашу?Потребность: pen3.type // общий

  class Pencil {
     constructor(color) {
      this.color = color;
    }
    intro() {
      console.log(`this is ${this.color} pencil`);
     }
    };

    class SomePencil extends Pencil {
     constructor(color, type) {
      super(color);
       this.type = type;
     }
    };
    class AnotherPencil extends SomePencil {
      constructor(color,type) {
       super(color, type);
     }
    };

    let pen1 = new Pencil();
    let pen2 = new SomePencil("red", "common");
    let pen3 = new AnotherPencil("green");

    console.log("type" in pen3); // true

1 Ответ

0 голосов
/ 13 ноября 2018

Наследование будет наследовать только свойства, а не значения, если они не установлены в самом определении класса. Например

class SomePencil extends Pencil {
 constructor(color, type) {
  super(color);
   this.type = type || 'common'; // Setting a default value if type is not passed
 }
};

новый способ установки значений по умолчанию

class SomePencil extends Pencil {
 constructor(color, type = 'common') {
  super(color);
   this.type = type;
 }
};

См. jsfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...