クラスを出力するモジュールを作る。
car.jsを作る。Carクラスを作る。
const Car = class {
constructor(name) {
this.name = name;
}
drive() {
console.log('drive drive ...');
}
};
module.exports = Car;
porsche.jsを作る。Carクラスを継承したPorcheクラスを作る。
super(name); は親クラスのコンストラクタを呼び出している。
super.drive();は、親クラスであるCarクラスのdrive()メソッドを呼び出している。
superキーワードは、親クラスのメソッドやコンストラクタにアクセスするために使用される。
子クラスで同じ名前のメソッドを定義した場合、superを使用して親クラスの同名のメソッドを呼び出すことができる。
const Car = require("./car");
const Porsche = class extends Car {
constructor(name) {
super(name);
}
echo() {
super.drive();
}
drive() {
console.log(`fire ${this.name} !!`);
}
};
module.exports = Porsche;
index.jsを作る。
Porsche クラスから新しいインスタンスcarを作成する。
Porsche のコンストラクタを呼び出し、引数として文字列「porsche」を渡す。これによって、carインスタンスが作成される。
carインスタンスは、Porscheクラスのプロパティやメソッドを継承し、利用することができる。
const Porsche = require("./porsche");
const car = new Porsche("porsche");
car.echo();
car.drive();
実行する。
C:\node\sample7>node index.js
drive drive ...
fire porsche !!