ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript_javascript スキルでのプロトタイプ チェーン プロトタイプの紹介
JavaScript での継承は、プロトタイプ チェーンを通じて行われます。各オブジェクトの内部にはプロトタイプとして別のオブジェクトがあり、オブジェクトはこのプロトタイプからプロパティを継承します。各オブジェクトについて、次の 3 つの方法でそのプロトタイプ オブジェクトにアクセスできます:
1.__プロト__。オブジェクトのプロトタイプ オブジェクトには、その __proto__ 属性を通じてアクセスできます。このプロパティは、Firefox、Safari、Chrome でのみサポートされており、IE と Opera ではサポートされていません。
2.Object.getPrototypeOf()。オブジェクトをパラメータとして Object.getPrototypeOf() メソッドに渡すことができ、実行後にオブジェクトのプロトタイプ オブジェクトが返されます。このメソッドは ECMAScript 5 標準でのみサポートされています。
3.o.constructor.prototype。プロトタイプ オブジェクトにアクセスするには、最初にオブジェクトのコンストラクター関数を取得し、次にコンストラクター関数のプロトタイプ プロパティにアクセスします。このメソッドを使用するための前提条件は、オブジェクト内のコンストラクターを指すコンストラクター属性が存在することです。
2 つのオブジェクト間にプロトタイプ チェーン関係があるかどうかを判断するには、isPrototype() メソッドを使用できます。
リテラルで作成されたすべてのオブジェクトのプロトタイプ オブジェクトは Object.prototype です (特別なオブジェクトとして、Object.prototype にはプロトタイプ オブジェクトがありません):
new 演算子で作成されたすべてのオブジェクトのプロトタイプ オブジェクトは、コンストラクター関数のプロトタイプ属性です:
new 演算子を使用して JavaScript でオブジェクトを作成するプロセスは次のとおりです:
1. 新しい空のオブジェクトを作成します。
2. このオブジェクトの __proto__ 属性をコンストラクター関数のプロトタイプ属性にポイントします。
3. このオブジェクトをパラメータとして使用して、コンストラクター関数を実行します。
上記の作成プロセスから、同じコンストラクター関数から構築されたすべてのオブジェクトの __proto__ 属性 (つまり、プロトタイプ オブジェクト) は等しい、つまり、プロトタイプ オブジェクトは 1 つだけであると結論付けることができます。