プロトタイプとは...


原型とは...乾かしましょう.
JavaScriptはプロトタイプベースの言語です.
私が理解しているprototypeとは、現在私が主体として使用している変数名のプロトタイプを指します.そういえば、資料を探しているうちに、いくつかの面白い概念が現れました.今日はこの概念について議論します.
let obj = {};walet obj=new Object();同じです.
もう一度、javascriptはプロトタイプベースの言語です.したがって,継承の概念は,現在存在するオブジェクトをモデルとし,そのオブジェクトを複製し再利用する方法を用いる.
最終的に、JavaScript内のすべてのオブジェクトは、そのオブジェクトのプロトタイプオブジェクトから最上位オブジェクトObjectまでのすべての属性およびメソッドを継承します.
例:
let date = new Date();
dateという変数を選択すると、Dateというオブジェクトの属性とメソッドだけでなく、Objectという属性とメソッドも継承できます.
このようにprototypeは作成したり、メソッドやプロパティを追加したりすることができます.
1.プロトタイプの作成
function myfamily(age, name, role){//가족에 대한 함수 생성
  this.age = age;//나이에 대한 속성 생성
  this.name = name;//이름에 대한 속성 생성
  this.role = role;//역할에 대한 속성 생성
}

let mom = new myfamily(47,'ajs','mother');

console.log(mom);//myfamily{age: 47, name: 'ajs', role: 'mother'}
このコードでは、myfamilyはプロトタイプであり、そのプロトタイプのプロパティを持つmomオブジェクトを作成することができる.
2.プロパティまたはメソッドをプロトタイプに追加
prototypeにプロパティまたはメソッドを追加するには、2つの方法があります.
  • ジェネレータ関数に直接追加する方法
  • プロトタイプメソッドで追加:
  • 新しく追加したプロパティまたはメソッドを、ジェネレータ関数宣言後のすべてのオブジェクトに適用するには、ジェネレータ関数に直接追加する必要があります.
    1.コンストラクタに直接追加する方法
    このメソッドは、関数宣言後に表示されるオブジェクトに適用できます.
    function myfamily(age, name, role){
      this.age = age;
      this.name = name;
      this.role = role;
      this.family = 'tess';//속성 추가시에 기본값 지정 가능
      this.introduce = function(){
        return `안녕하세요 ${this.family}의 가족 ${this.name}입니다.`
      }//소개하는 메서드 생성
    }
    
    let mom = new myfamily(47,'ajs','mother');
    mom.introduce()//'안녕하세요 tess의 가족 ajs입니다.'
    2.Prototypeメソッドで追加する方法
    構造関数を見つけるのが難しい場合、この方法は便利に使用できます.
    
    function myfamily(age, name, role){
      this.age = age;
      this.name = name;
      this.role = role;
    }
    
    myfamily.prototype.family = 'tess';//현재 존재하는 myfamily함수에 family속성 추가
    myfamily.prototype.introduce = function(){
        return `안녕하세요 ${this.family}의 가족 ${this.name}입니다.`
    }//현재 존재하는 myfamily함수에 introduce메서드 추가 
    
    let mom = new myfamily(47,'ajs','mother');
    mom.introduce()//'안녕하세요 tess의 가족 ajs입니다.'
    console.log(mom);//myfamily{age: 47, name: 'ajs', role: 'mother', family: 'tess'}