javascript クラスについて、ちょっと気になったとこを..(勉強中!)
javascript クラスについて、ちょっと気になったとこを..
javascriptのクラスで"この辺C++とチョット違うな~?と思った辺をシェア。
一つ目
staticで宣言したメソッドは、クラス名.メソッド名でアクセスできる。
(ふつうはオブジェクト名.メソッド名)
二つ目
親クラスのコンストラクタを呼ぶときはsuper()という名前で呼ぶことができる。
class Player{//親クラス
constructor(name, score){//メソッド
this.name=name;
this.score=score;
}
showInfo(){
console.log(`name:${this.name}\n score:${this.score}`)
}
static showVersion(){
console.log('Player class ver. 1.0');
}
}
const taguchi = new Player('taguchi',32);
const fkoji=new Player('fkoji',44);
console.log(taguchi.name);
taguchi.showInfo();
fkoji.showInfo();
//Staticで定義したメソッド
//class名.メソッド名でアクセスできる。
//ここのobjectには関係なさそうでも、クラスには関係ありそうであれば
// この定義方法を使ったほうがよい。
Player.showVersion();
//classの継承
class SoccerPlayer extends Player{//子クラス
constructor(name, score, number){
super(name,score);//親クラスのコンストラクタを呼ぶ
this.number=number;
}
kick(){
console.log('Gooooooaaaaaalllll!!');
}
}
const tsubasa= new SoccerPlayer('tsubasa',99,10);
tsubasa.kick();
console.log(tsubasa.number);
tsubasa.showInfo();