OOPS base からのように、コードを再利用するための強力なツールとして常に継承を使用しています。
例として、OOPS でチェス プログラムを作成し、 is-a
リレーションシップを次のように実装すると、
Class Piece{
int teamColor;
bool isLive;
Positon pos;
int Points;
.......
int getTeamColor(){....}
.......
};
Class Rook extend Piece{ //`is-a`
...... // No getTeamColor() definition here.. because the parent has the definition.
};
Class Pawn extend Piece{ //`is-a`
......// No getTeamColor() definition here.. because the parent has the definition.
};
javascript の関係でこれを行うことができますhas-a
が、私が見ている欠点は、派生クラスのすべての関数も再定義する必要があることです。
例 : ルーク、ナイト、ポーン、キングなどごとに getTeamColor() を再定義します。
var Pawn = function(teamColor,pos){
var piece = new Piece(teamColor,pos);
.......
this.getTeamColor = function(){
return piece.getTeamColor();
};
}
私の質問は、javascript がデフォルト オプションとして従来の継承をサポートしていないのはなぜですか?