ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の継承においてプロトタイプ コンストラクターのリセットが重要なのはなぜですか?

JavaScript の継承においてプロトタイプ コンストラクターのリセットが重要なのはなぜですか?

Linda Hamilton
リリース: 2024-12-02 09:32:13
オリジナル
716 人が閲覧しました

Why is Resetting the Prototype Constructor Crucial in JavaScript Inheritance?

継承においてプロトタイプ コンストラクターのリセットが不可欠な理由

オブジェクト指向プログラミングの領域では、継承を利用して新しいクラスを作成することがよくあります。親クラスからプロパティとメソッドを継承します。このプロセスのあまり知られていないものの、重要なステップの 1 つは、プロトタイプ コンストラクターのリセットです。

コンストラクターをリセットする重要性

常に必須ではありませんが、プロトタイプのリセットコンストラクターは、作成された新しいクラスのインスタンスが元のコンストラクターを保持するようにする上で重要な役割を果たします。これは、オブジェクトの作成を伴う基本クラスでメソッドを定義する場合に特に重要です。

同じ名前の新しいインスタンスを返す、「person」クラスで定義された「copy」メソッドの例を見てみましょう。

function Person(name) {
  this.name = name;
}

Person.prototype.copy = function() {
  return new this.constructor(this.name); // Using the inherited 'constructor' instead of 'Person'
};

function Student(name) {
  Person.call(this, name);
}

Student.prototype = Object.create(Person.prototype);
ログイン後にコピー

上記のコードの場合のように、プロトタイプ コンストラクターのリセットを省略した場合、「Student」クラスのインスタンスで「copy」メソッドを呼び出すと、コピーが作成されます。それは「学生」の例ではありません。これは、基本の "person" クラスに "Student" コンストラクターの知識が欠けているためです。

ただし、プロトタイプ コンストラクターを明示的にリセットすることで、

Student.prototype.constructor = Student;
ログイン後にコピー

" のインスタンスがStudent" クラスは正しいコンストラクターを継承するため、"Student" のインスタンスとして正しく識別されるコピーを作成できます。

結論として、プロトタイプをリセットします。継承におけるコンストラクターは、オブジェクト インスタンスの整合性を維持するための重要なステップとして機能し、オブジェクト インスタンスが意図したコンストラクターを保持し、必要なプロパティとメソッドを確実に継承します。

以上がJavaScript の継承においてプロトタイプ コンストラクターのリセットが重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート