JavaScript の継承: 事実上の標準を明らかにする
JavaScript の継承について詳しく説明した多数の記事にもかかわらず、利用可能なアプローチが多すぎるために混乱が生じることがよくあります。この謎めいた主題を明確にするために、最も受け入れられている方法を検討し、特定のシナリオに合わせたガイダンスを提供します。
適切な継承メカニズムの選択
new と Object.create は、最適な継承を選択するために重要です 戦略。どちらの手法もオブジェクトの作成を容易にしますが、目的は異なります。 Object.create は別のオブジェクトを継承する新しいオブジェクトを生成しますが、new はさらにコンストラクター関数を呼び出します。
ユースケースへの適用
あなたの目的は、拡張可能なサブクラス RestModel および RestModel を持つ Model という名前の基本オブジェクトを確立することです。ローカルストレージモデル。このシナリオでは、Object.create が優先メソッドとして浮上します。このアプローチは、Model コンストラクターを呼び出さずにプロトタイプの継承階層を作成するという意図と一致しています。
<p>RestModel.prototype = Object.create(Model.prototype);<br></ pre><br></p> <p>でのコンストラクターの呼び出しサブクラス<strong></strong></p>RestModel の Model コンストラクターの呼び出しが必要な場合、これは継承によっては実行されません。代わりに、<p>call()<strong> または </strong>apply()<strong> が、コンストラクターの実行をトリガーする手段を提供します。</strong></p><pre class="brush:php;toolbar:false"><p>function RestModel() {<br></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">Model.call(this); // Apply Model's constructor on the new object ...
以上がJavaScript の継承: Object.create と new: どちらが適切ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。