ホームページ >ウェブフロントエンド >jsチュートリアル >定義直後に匿名 JavaScript 関数を呼び出すのはなぜですか?

定義直後に匿名 JavaScript 関数を呼び出すのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 12:55:11645ブラウズ

Why Invoke Anonymous JavaScript Functions Immediately After Definition?

同じ行で匿名関数を呼び出す理由

クロージャを使用する場合、匿名関数を同じ行で呼び出すのが一般的です。定義されています。これは恣意的なように見えるかもしれませんが、JavaScript が関数宣言を処理する方法を考慮すると、適切な実行には不可欠です。

JavaScript での関数定義

JavaScript では、関数を定義するための 3 つの方法が使用できます。

  • 関数コンストラクター: 新規Function('args', 'body')
  • 関数宣言: 関数名(args) { body }
  • 関数式: 変数名= function(args) { body }

宣言と式の主な違い

匿名関数と改行

匿名関数は、名前付き関数とは異なる動作をします。匿名関数式を記述する場合、必要に応じて括弧内に識別子を指定できますが、必須ではありません。

匿名関数を定義した後に改行すると、JavaScript はそれを関数宣言として解釈します。ただし、識別子が指定されていないため、宣言は無効な構文になります。

例:

このコードは、匿名関数式を作成し、それを同じ行で呼び出します。

(function(msg) { alert(msg); })('Hello');

無効です例:

改行してかっこを省略すると、不正な関数宣言になります:

function(msg) { alert(msg); }

('Hello'); // Syntax error: Invalid function syntax without an identifier

機能させるには、かっこを追加する必要があります匿名関数を呼び出すには式:

function(msg) { alert(msg); }('Hello');

結論

同じ行で匿名関数を呼び出すと、それらが関数式として正しく実行され、関数式として誤って解釈されることがなくなります。識別子が欠落している関数宣言。

以上が定義直後に匿名 JavaScript 関数を呼び出すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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