プロトタイプとは...
原型とは...乾かしましょう.
JavaScriptはプロトタイプベースの言語です.
私が理解しているprototypeとは、現在私が主体として使用している変数名のプロトタイプを指します.そういえば、資料を探しているうちに、いくつかの面白い概念が現れました.今日はこの概念について議論します.
let obj = {};walet obj=new Object();同じです.
もう一度、javascriptはプロトタイプベースの言語です.したがって,継承の概念は,現在存在するオブジェクトをモデルとし,そのオブジェクトを複製し再利用する方法を用いる.
最終的に、JavaScript内のすべてのオブジェクトは、そのオブジェクトのプロトタイプオブジェクトから最上位オブジェクト
例:
このようにprototypeは作成したり、メソッドやプロパティを追加したりすることができます.
1.プロトタイプの作成
2.プロパティまたはメソッドをプロトタイプに追加
prototypeにプロパティまたはメソッドを追加するには、2つの方法があります.ジェネレータ関数に直接追加する方法 プロトタイプメソッドで追加: 新しく追加したプロパティまたはメソッドを、ジェネレータ関数宣言後のすべてのオブジェクトに適用するには、ジェネレータ関数に直接追加する必要があります.
1.コンストラクタに直接追加する方法
このメソッドは、関数宣言後に表示されるオブジェクトに適用できます.
構造関数を見つけるのが難しい場合、この方法は便利に使用できます.
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'}
Reference
この問題について(プロトタイプとは...), 我々は、より多くの情報をここで見つけました https://velog.io/@tess/prototype이란テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol