ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の `.prototype` はどのようにしてクラスなしの継承を可能にするのでしょうか?

JavaScript の `.prototype` はどのようにしてクラスなしの継承を可能にするのでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-29 00:18:14519ブラウズ

How Does JavaScript's `.prototype` Enable Inheritance Without Classes?

JavaScript .prototype: クラスを使用しない継承の解明

JavaScript は、クラスベースの言語とは異なり、プロトタイプベースのパラダイムを採用しています。このアプローチにより、クラスを明示的に定義することなく、動的なオブジェクトの作成とプロパティの継承が促進されます。このプログラミング モデルをナビゲートするには、謎めいた .prototype プロパティを理解することが重要です。

オブジェクトがクラスとして知られるブループリントからインスタンス化される従来の継承とは対照的に、JavaScript は他のオブジェクトからオブジェクトを直接生成します。 .prototype プロパティは、このプロセスで重要な役割を果たし、新しいインスタンスの設計図として機能します。

次のコード スニペットを考えてみましょう。

var Person = { name: "John" };
var person2 = new Person;
person2.getName = function() { alert(this.name); };

この例では、 person は次のことを表すオブジェクトです。名前のプロパティを持つ人。 new Person という行は、新しいオブジェクト person2 を作成します。このオブジェクトは、person から name プロパティを継承します。

重要な洞察は、.prototype プロパティにあります。 JavaScript のすべてのオブジェクトには、オブジェクト自体である .prototype プロパティがあります。新しいオブジェクトが作成されると、その .prototype プロパティはそのオブジェクトの作成元のオブジェクトを指します。

この例では、person2 の .prototype プロパティは person を参照します。これにより、person2 は Person.prototype で定義されたプロパティとメソッドを継承できるようになります。

サンプル コードは、person2.prototype で getName 関数を動的に定義することによって、この継承を示しています。 person2 は Person から継承するため、この追加機能にアクセスできます。

JavaScript のプロトタイプベースの継承により、効率的なメモリ使用が可能になり、コードの重複が減り、動的なオブジェクト操作が容易になります。

以上がJavaScript の `.prototype` はどのようにしてクラスなしの継承を可能にするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。