ray88’s diary

お仕事で困ったとき用の自分用の覚書

JavaScript プロトタイプメソッドの変更

JavaScript 目次 - ray88’s diary
■プロトタイプメソッドの変更
 静的メンバーの追加の方法を応用し、class文によるクラス定義の後に
 プロトタイプメソッドの変更をすることが可能。
 以下の様に配下にprototypeプロパティ配下のメソッドを変更する。
【構文】

クラス名.property.メソッド名 = funcion(仮引数1,)仮引数2,・・・){
         //処理
}

【サンプルコード】

function myFunction(){
  //クラス「Person」を定義
  class Person{
    constructor(name,age){
      //thisキーワードを用いてnameプロパティ、ageプロパティを定義
      this.name = name;
      this.age = age;
    }
    //クラスPersonにメソッドgreetを追加
    greet(name){
      console.log(`Hello! I am ${this.name}!`);
    }  
  }
  //関数リテラルを代入し、Personクラスのプロトタイプメソッド
  //greetを上書き
  Person.prototype.greet = function(){
    console.log(`Good Bye! I'm ${this.name}!`);
  };

  //Personクラスをインスタンス化
  const p = new Person('Bob',25)
  p.greet();
     
 console.log(Person.prototype.greet.toString());
 console.log(p.greet.toString());
}