「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JavaScript の継承のために new ではなく Object.create を選択するのはどのような場合ですか?

JavaScript の継承のために new ではなく Object.create を選択するのはどのような場合ですか?

2024 年 11 月 19 日に公開
ブラウズ:314

When to Choose Object.create Over new for JavaScript Inheritance?

JavaScript の継承: Object.create と new

JavaScript の継承の概念は、達成するにはさまざまなアプローチがあるため、混乱を招く可能性があります。それ。この記事の目的は、最も受け入れられているメソッドを明確にし、特定のシナリオに対する解決策を提供することです。

Object.create と new について

Object.create は、次のメソッドを作成するメソッドです。既存のオブジェクトを継承して新しいオブジェクトを作成します。これは、基本オブジェクトを作成し、それを追加のプロパティとメソッドで拡張する場合に便利です。 Object.create の構文は次のとおりです。

Object.create(prototype[, propertiesObject])

一方、 new キーワードは、オブジェクトの新しいインスタンスを作成して呼び出します。そのコンストラクター関数。 new の構文は次のとおりです。

new ConstructorFunction([arguments])

継承のための正しいメソッドの選択

Object.create とnew は特定の要件によって異なります。 Object.create は、コンストラクターを呼び出さずに継承元となる基本オブジェクトを作成するのに最適です。例:

const Model = {
    // Base object properties and methods...
};

const RestModel = Object.create(Model);

ただし、継承オブジェクトで基本オブジェクトのコンストラクター関数を呼び出したい場合は、new を使用する必要があります。例:

function Model() {
    // Base object constructor...
}

function RestModel() {
    Model.call(this);
    // Additional properties and methods...
}

シナリオの解決策

あなたの場合、Model 基本オブジェクトから RestModel を継承したいとします。 Object.create を使用してこれを実現するには、次のようにします:

RestModel.prototype = Object.create(Model.prototype);

これにより、RestModel プロトタイプを継承する新しい RestModel プロトタイプが作成されます。モデルのプロトタイプ。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3