オブジェクト生成
従来のjavascriptではクラスを直感的に定義できなかったがES2015ではクラスを作成することができる。
「クラス」とは、生成するオブジェクトのひな形となる要素のことを指す。
そのオブジェクトのひな形を生成してプログラム上にて実体化したものを「インスタンス」という。
インスタンスを生成する際に初期化をする必要があり、その初期化を行うメソッドを「コンストラクタ」という。
クラス生成
//クラス
class Human {
constructor(height, weight){
//コンストラクタ
//プロパティ生成(thisはこのクラスのインスタンスを指す)
this.height = height;
this.weight = weight;
}
walk(distance) {
//クラスが保有するメソッド
console.log("身長:" + this.height + "、体重:" + this.weight + "の人が");
console.log(distance + "m歩いた。");
}
}
//Humanクラスのインスタンス生成
const man = new Human(170,68);
man.walk(30); //インスタンスが持つメソッドを実行
//同じクラスから別のインスタンスを生成
const woman = new Human(155,50);
woman.walk(100);
console.log("身長:" + woman.height); //プロパティ参照 (身長:155)
継承
クラスが持つ情報を継承して新たなクラスを生成する。
//継承
class Tanakasan extends Human{
constructor(){
super(); //継承元のクラス(スーパークラス)のコンストラクタを呼び出す
}
}
const tanaka = new Tanakasan();
tanaka.height = 155;
tanaka.weight = 34;
tanaka.walk(3000);