匿名クラスの即時インスタンス化を避けるべき場合は?

Barbara Streisand
リリース: 2024-10-20 12:05:02
オリジナル
460 人が閲覧しました

When to Avoid Immediate Instantiation of Anonymous Classes?

匿名クラスの即時インスタンス化: 注意事項

ES6 では、匿名クラスを定義して、それらをすぐにインスタンス化することができます。この構文は最初は魅力的に見えるかもしれませんが、その落とし穴と、一般的にこの構文を避けるべき理由を理解することが重要です。

匿名クラスを直接インスタンス化するには、次の構文を使用します:

var entity = new class {
    constructor(name) { this.name = name; }
    getName() { return this.name; }
}('Foo');
ログイン後にコピー

舞台裏では、これにより、インスタンス化ごとに新しいコンストラクター関数とプロトタイプ オブジェクトが作成されます。これは、このメソッドを使用して作成された複数のオブジェクトは、クラスの継承やプロトタイプの関係による利点を共有しないことを意味します。

さらに、このアプローチは、匿名クラスを使用してシングルトン オブジェクトを作成する試みを台無しにします。コンストラクター関数には依然としてアクセスして追加のインスタンスを作成するために利用でき、意図したシングルトンの動作が無効になります。

これらの警告を考慮して、すぐにインスタンス化される匿名クラスの使用を避けることを強くお勧めします。より単純なオブジェクト リテラルは、より効率的で簡単な代替手段を提供します:

var entity = {
    name: 'Foo',
    getName() { return this.name; }
};
ログイン後にコピー

以上が匿名クラスの即時インスタンス化を避けるべき場合は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!