LoginSignup
8
6

More than 5 years have passed since last update.

javascript オブジェクト指向プログラミング

Posted at

オブジェクト生成

従来の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);
8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6