classのsuper()の使い方がよく分からないから調べてみた。
super()は親クラスのconstructor()を呼び出す
環境
Windows10(64bit)
nvm(Node Version Manager)を使用する。
nvmはnodeとnpmのバージョンの切り替えができる。
node.jsはアップデートが頻繁に行われるため、バージョン管理ツールを使うと都合が良いことが多い。
「特定のプロジェクトに必要なNode.jsのバージョンを簡単にインストールして使用することができる。」や「プロジェクト毎にNode.jsのバージョンの切り替えが簡単になる。」等のメリットがある。
nvm 1.1.10
node v18.15.0
npm 9.5.0
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
console.log("Animalのconstructorを実行")
}
}
class Dog extends Animal {
// 追記
constructor(name, age, breed) {
super(name, age); // 親クラスのconstructor()を呼び出す
this.breed = breed; // breedプロパティを新たに追加
}
}
const dog = new Dog('太郎', 4, '柴犬');
console.log(dog.name);
console.log(dog.age);
console.log(dog.breed);
実行すると次のようになる。
c:\node\test>node test4.js
Animalのconstructorを実行
太郎
4
柴犬
c:\node\test>