ホームページ ウェブフロントエンド jsチュートリアル JavaScript 関数式での「new」は静的な動作を作成しますか?

JavaScript 関数式での「new」は静的な動作を作成しますか?

Dec 15, 2024 am 08:34 AM

Does `new` with JavaScript Function Expressions Create Static Behavior?

「new」を使用した関数式 キーワード: 静的な性質を明らかにする

JavaScript で、「new」を使用した関数式の動作を理解するキーワードが重要です。次のコードを考えてみましょう:

var gameData = new function () {
    // Function expressions require no constructor
    this.storageAvailable = function () { ... };
};
ログイン後にコピー

この場合の 'new' キーワードはインスタンス化を意味したり、複数のインスタンスの作成を許可したりするものではないことに注意することが重要です。代わりに、単に関数式を実行し、結果の匿名オブジェクトを 'gameData' 変数に割り当てます。

静的動作の誤解

における静的動作の概念C# は、JavaScript の関数式も静的に動作するという誤解を招く可能性があります。しかし、これは不正確です。ここでの 'new' キーワードは 2 番目のオブジェクトの作成を妨げません:

var gameData2 = new (gameData.constructor)(); // Reinstantiation is possible
ログイン後にコピー

さらに、関数式には匿名関数を指すコンストラクター プロパティがまだあり、これには 'gameData.constructor を使用してアクセスできます。 '。これは、真の静的クラスの目的を無効にします。

静的動作の代替手段

単一のインスタンス化できないオブジェクトを作成することが目的の場合、より適切な動作があります。 'new':

  • Object を使用した関数式の使用の代替案リテラル: これらは、コンストラクターやプロトタイプのない単純な JavaScript オブジェクトであり、一意性が確保されています。
  • 明らかになったモジュール パターン: IIFE (即時呼び出し関数式) を使用してクロージャーを作成できます。 -スコープ変数。必要なプロパティを持つオブジェクトを返します。
  • シングルトンパターン: このデザイン パターンは、クラスへのすべての参照が同じオブジェクトを指すようにする、クラスの単一の制御されたインスタンスを作成します。

結論として、JavaScript の 'new' キーワードを含む関数式は次のようになります。複数回インスタンス化でき、「gameData.constructor」を通じてアクセスできるパブリック コンストラクター プロパティを持つため、静的な動作は示されません。真の静的な動作を実現するには、オブジェクト リテラル、モジュール パターン、シングルトン パターンの公開などの代替アプローチの採用を検討してください。

以上がJavaScript 関数式での「new」は静的な動作を作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

例JSONファイルの例 例JSONファイルの例 Mar 03, 2025 am 12:35 AM

例JSONファイルの例

8見事なjQueryページレイアウトプラグイン 8見事なjQueryページレイアウトプラグイン Mar 06, 2025 am 12:48 AM

8見事なjQueryページレイアウトプラグイン

10 jQuery構文蛍光物 10 jQuery構文蛍光物 Mar 02, 2025 am 12:32 AM

10 jQuery構文蛍光物

独自のAjax Webアプリケーションを構築します 独自のAjax Webアプリケーションを構築します Mar 09, 2025 am 12:11 AM

独自のAjax Webアプリケーションを構築します

' this' JavaScriptで? ' this' JavaScriptで? Mar 04, 2025 am 01:15 AM

' this' JavaScriptで?

10 JavaScript&JQuery MVCチュートリアル 10 JavaScript&JQuery MVCチュートリアル Mar 02, 2025 am 01:16 AM

10 JavaScript&JQuery MVCチュートリアル

See all articles