blog

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

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

Apr 8, 2020 · 2 min. read
シェア

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

トランザクションの伝播

は、常にされている、トランザクションは、困難なポイントのビジネス開発であり、数え切れないほどの理論を読んで、常に私は良い覚えていると思う、覚えていることができますが、個人的に勉強するコードを書きに行かなかった、私はあなたが私と同じであるかどうかわからないそれ。遅かれ早かれ、ミックスのうち、今夜は意図的にトランザクションの理解と印象を深めるために、実際の生活の方法でトランザクションの伝播特性。実際には、それは同じことですが、偽の究極の心を実践しないでください。私はあなたがこの記事を読んだ後、それはノックに従うことが最善であると信じて...

Apr 8, 2020 · 3 min read