JavaScript: クラスを継承する
JavaScriptでクラスを継承する場合は、 親クラスのインスタンスを子クラスのprototypeプロパティにセットします。
子クラス.prototype = new 親クラス()
コード例
下の表のように、親クラスCard、子クラスChildCard、 それぞれの独自メソッドがgetNumber()、showNumber()であるクラスを作成、継承してみます。
クラス名 | メソッド | |
親クラス | Card | getNumber() |
子クラス | ChildCard | showNumber() |
// Card クラス
function Card(num){
this.number = num;
}
// メソッド
Card.prototype.getNumber = function(){
return this.number;
}
// ChildCard クラス
function ChildCard(num){
this.number = num;
}
// 継承
ChildCard.prototype = new Card();
// メソッド
ChildCard.prototype.showNumber = function(){
console.log(this.number);
}
var c = new ChildCard(5);
console.log(c.getNumber()); // 5
c.showNumber(); // 5
ポイントは赤字部分です。親クラスCardのインスタンスを 子クラスChildCardのprototypeプロパティにセットしています。 これによりクラスが継承されます。
// 継承
ChildCard.prototype = new Card();
下の3行で、子クラスのインスタンスから親クラスのメソッドgetNumber()と、
子クラスのメソッドshowNumber()が呼び出されていることが確認できます。
var c = new ChildCard(5);
console.log(c.getNumber()); // 5
c.showNumber(); // 5