ホームページ >ウェブフロントエンド >jsチュートリアル >JS でオブジェクトを作成するいくつかの方法

JS でオブジェクトを作成するいくつかの方法

大家讲道理
大家讲道理オリジナル
2017-04-11 14:05:211436ブラウズ

最初のモード: ファクトリモード

手順:
1. 関数オブジェクトを定義し、オブジェクトのさまざまなプロパティを定義します。メソッド
を繰り返し作成することを避けるために、属性が関数の外部のメソッドである属性を定義することをお勧めしますオブジェクトを参照する場合、ここでは var x = new Parent の代わりに var x = Parent() が使用されます。 (); 後者は多くの問題を引き起こす可能性があるため (前者も古典的なファクトリ メソッドとなり、後者は混合ファクトリ メソッドと呼ばれます)、このオブジェクトを使用するために新しいメソッドを使用することはお勧めできません3。関数の最後にオブジェクト
4 を追加します。この
オブジェクトの作成方法はお勧めしませんが、理解する必要があります。

欠点: ①オブジェクトの種類を判断できない(すべて

オブジェクトであるため)。

②作成した複数のオブジェクト間には関連性がありません。

2 番目のモード: コンストラクター メソッド

説明:

1. ファクトリ メソッドと比較して、コンストラクター メソッドを使用してオブジェクトを作成するには、関数内でオブジェクトを再構築する必要がありませんが、これを使用します。を参照し、関数は明示的である必要はありません
return 2.
Factory pattern と同様に、属性の値はメソッドにすることができますが、同様に関数の外でメソッドを定義することをお勧めします 3。 、この方法を使用してオブジェクトを作成することはお勧めできませんが、理解する必要があります。

デメリット: ① 複数のインスタンスが繰り返し作成され、共有することができません。

②複数のインスタンスは同じFunctionのインスタンスではありません。

3 番目のモード: プロトタイプ モード

手順:

1. 関数内で属性を定義しないでください
2. 属性を定義するためにプロトタイプ属性を使用します
3 同様に、この方法は推奨されません。オブジェクトの作成

欠点: ① パラメータを渡すことができず、属性値を初期化することもできません。

②参照型の値が含まれている場合に、1つのインスタンスの値を変更すると、すべてのインスタンスに反映されます。

4 番目のモード: コンストラクター 関数、プロトタイプ メソッドの混合 (推奨)

説明:

1 このモードは、コンストラクター メソッドとプロトタイプ メソッドの混合と一致を指します

2。メソッドが関数内で定義されていない (コンストラクター メソッド)
プロトタイプを使用して、値がメソッドの外にあるすべての属性を定義する (プロトタイプ メソッド)
3. この方法でオブジェクトを作成することをお勧めします

利点: コンストラクターはインスタンス プロパティを共有します、共有する共有メソッドとプロパティのプロトタイプを作成します。パラメータを渡して属性値を初期化できます。

5 番目のモード: 動的プロトタイプ メソッド

説明:
1. 動的プロトタイプ メソッドは、プロトタイプ メソッドの特殊なケースである混合コンストラクターとして理解できます。メソッドは直接関数内で定義されますが、

はオブジェクトのインスタンスを作成するときに属性メソッドが繰り返し作成されないようにするため、このモードを使用することをお勧めします。


添付ファイル:

JS

でオブジェクトを作成するさまざまな方法の詳細な説明

以上がJS でオブジェクトを作成するいくつかの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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