ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_js オブジェクト指向で継承を実装する 3 つの方法

JavaScript_js オブジェクト指向で継承を実装する 3 つの方法

WBOY
WBOYオリジナル
2016-05-16 18:44:201123ブラウズ
1. プロトタイプ チェーンの継承
プロトタイプ チェーンの継承に関しては、JavaScript は Java や C# などの言語に似ており、単一の親クラスの継承のみを許可します。プロトタイプ継承の基本的な方法は次のとおりです。
コードをコピー コードは次のとおりです。

function Parent(){ }
function Child(){}
Child.prototype = new Parent();

Child オブジェクトのプロトタイプ属性は、親オブジェクト Parent。これにより、Child オブジェクトのインスタンスが渡すことができます。 プロトタイプ チェーンは、親オブジェクトの構造によって定義されたプロパティ、メソッドなどにアクセスします。
プロトタイプチェーンを介して親オブジェクトをリンクする構造になっているということは、オブジェクトの継承が完了しているということでしょうか。答えはノーです。例:
コードをコピー コードは次のとおりです:

function Parent(){}
function Child(){}
Child.prototype = new Parent();
var child = new Child();
alert(child.constructor);//function Parent(){}
alert (child instanceof Child);//true

child は依然として Child のインスタンスとして使用できますが、この時点では、インスタンスの子の元のオブジェクト構成情報は失われています。この欠陥を補う方法は次のとおりです。
コードをコピー コードは次のとおりです:

function Parent(){ }
function Child(){}
Child.prototype = new Parent();
Child.prototype.constructor = Child;
var child( );
alert(child .constructor);//function Parent(){}
alert(child instanceof Child);//true

上のコード スニペットに示すように、 Child.prototype.constructor = Child" を使用して、オブジェクト コンストラクター Child のプロトタイプを明示的に指定し、すべての Child オブジェクト インスタンスを Child として強制的に構築します。
2. apply メソッドと call メソッドを使用します
JavaScript 組み込み Function オブジェクトの apply メソッドと call メソッドは、オブジェクト構築内の「this」のコンテキストを変更するため、特定のオブジェクト インスタンスには、定義されたプロパティとメソッドがあります。
実際の開発で HTML ページ上で DOM オブジェクトを操作する場合、継承の適用と呼び出しの使用が特に一般的です。例:
コードをコピー コードは次のとおりです:

適用、継承の呼び出し