blog

JavaScriptのプロトタイプチェーン

例の説明によると、プロトタイプ連鎖の基本的な考え方は、参照型が別の参照型のプロパティとメソッドを継承できるようにするためにプロトタイプを使用することです(例のデータ型は参照型と基本型に分かれており、基...

Apr 8, 2020 · 2 min. read
Share this

JavaScriptのプロトタイプチェイニングは継承を可能にするために設計されています。すべてのオブジェクト指向言語には継承の概念があり、継承を実装する主な目的はコードの再利用です。共通の機能やメソッドを共有することで、コードを再利用し、メモリを節約することができます。

ECMAScriptの説明によると、プロトタイプチェイニングの基本的な考え方は、ある参照型が別の参照型のプロパティやメソッドを継承するためにプロトタイプを使用することです。このプロセスを理解するための例を示します:

上記のコードでは Person と Male という 2 つの型を定義しており、それぞれプロパティとメソッドを持っています。主な違いは、Male のプロトタイプ・オブジェクトは Person のインスタンスであり、Male は Person から getName() メソッドを継承しているため、Male インスタンスは getName() メソッドで "ZhangSan" を返すことができます。これは、プロトタイプ・オブジェクトへのポインタを手動で書き換えることで実現できます。実際、JavaScript で関数を使用してメソッドが宣言されると、JavaScript の現在の実装では、デフォルトでメソッドのプロトタイプ・オブジェクトが作成され、コンストラクタ属性はデフォルトで 1 つしかなく、コンストラクタは現在宣言されている関数を指します。関数はprototype属性を通してプロトタイプオブジェクトを見つけることができます。これをコードで確認するには、次のようにします:

Person.prototype.constructor == Person // true 

JavaScriptのすべての参照型はObjectを継承しており、この継承もプロトタイプチェーンを通じて行われます。すべての関数のデフォルトのプロトタイプオブジェクトはObjectのインスタンスなので、デフォルトのプロトタイプオブジェクトはObject.prototypeへの内部ポインタを含みます。オブジェクトにこれらのメソッドが組み込まれているからです。つまり、JavaScriptのすべての参照型はこれらのメソッドを継承しています。次の図は、例における完全なプロトタイプチェーンを示しています。

Read next

Centosファイアウォールのインストールとポートの設定

インストールの確認/ステータスの表示ファイアウォールのインストールファイアウォールの有効化ファイアウォールの閉鎖ブート設定の設定ブート設定の無効化ポートリストの表示ポートの有効化ポートの閉鎖ポートの表示設定の読み込み

Apr 8, 2020 · 1 min read

トランザクションの伝播

Apr 8, 2020 · 3 min read

Javaワークフローの詳細

Apr 8, 2020 · 6 min read

焦点損失関数 焦点損失とGHM

Apr 7, 2020 · 14 min read

cluster$adaptive

Apr 7, 2020 · 1 min read