📝

【JavaScript】super()の使い方

2023/01/29に公開

結論

継承した親クラスのconstructor()を
小クラスでオーバーライド(上書き)するときや、プロパティを追加するときに使う。

Animalクラスという親クラスがあったとする。

sample.js
class Animal {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

このクラスを継承して、Catクラスを作るとする。

sample.js
class Animal {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

// 追記
class Cat extends Animal {
  
}

親クラスであるAnimalクラスのconstructor()に
品種(breed)を追加したいとする。

  • 小クラスのconstructor()内で
    super()を使用し親クラスを呼び出す。
  • 追加したいプロパティを記入する。
sample.js
class Animal {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
}

class Cat extends Animal {
    // 追記
  constructor(name, age, breed) {
    super(name, age); // 親クラスのconstructor()を呼び出す
    this.breed = breed; // breedプロパティを新たに追加
  }
}

const cat = new Cat('タマ', 4, 'スコティッシュフォールド');
console.log(cat.breed); 
実行結果
"スコティッシュフォールド"

Discussion