読者です 読者をやめる 読者になる 読者になる

【javascript】ES6で導入されたclassにクラスメソッドを実装

ES6で導入されたclass記法は元々あった擬似クラス構文のシンタックスシュガー。
そのため、ES5時代の手法が そのまま転用できる。

class Person{

  constructor(){
     this.name = '山田太郎'
  }
  
  say(){
    console.log(this.name);
  }
}

今回定義したPersonクラスにクラスメソッドを追加する。

Person.method = function(){
   console.log("クラスメソッド");
}


これだけ。
実際に試してみる。

let tarou = new Person();

//インスタンスからクラスメソッドにアクセスできない
tarou.method()  //Uncaught TypeError

//インスタンスはインスタンスメソッドにアクセスできる
tarou.say()    //山田太郎

//クラスはインスタンスメソッドにアクセスできない
Person.say()    //Uncaught TypeError

//クラスはクラスメソッドにアクセスできる
Person.method()  //クラスメソッド


ES5での擬似クラス定義を理解していれば然程難しくはない。