プロトタイプ

1292 ワード

📚 プロトタイプ継承


既存の機能をインポートおよび拡張する必要がある場合は、プロトタイプ継承を使用します.

💡 [[Prototype]]


オブジェクトには[Prototype]という非表示のプロパティがあります.
📌 prototype
「Prototype」propertyの値はnullまたは他のオブジェクトへの参照であり、他のオブジェクトを参照する場合、参照するオブジェクトは「プロトタイプ」と呼ばれます.
📌 prototype inheritance
objectからpropertyを読み込もうとしたが、それがない場合、JavaScriptは自動的にpropertyタイプでpropertyを検索します.この動作を「プロトタイプ継承」と呼ぶ.

💡 __proto__

let animal = {
  eats: true
};
let rabbit = {
  jumps: true
};

rabbit.__proto__ = animal; // animal이 rabbit의 프로토타입이 된다.

alert( rabbit.eats ); // true, 자동으로 animal이라는 객체에서 프로퍼티를 얻는다. 
alert( rabbit.jumps ); // true
Protoを使用して、[PRODUCType]Propertyの値を設定します.

  • protoは[prototype]のgetterです.設定者です.

  • プロトタイプから継承されたプロトタイプを継承プロトタイプと呼ぶ.
  • 最近はObjectが好きgetPrototypeOfまたはObject.setPrototypeOfを使用してプロトタイプを取得または設定します.

    💡 prototype chaining



    プロトタイプふるい分けには以下の制限があります.

  • 循環参照は許可されません.
    protoを使用して他のオブジェクトを閉じた形式で参照すると、エラーが発生します.

  • protoの値はオブジェクトまたはnullのみです.
    他の資料型は無視されます.

  • オブジェクトには[prototype]が1つしかありません.
    オブジェクトは2つのオブジェクトを継承できません.
  • 💡 this


    💡 for...in