ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 関数呼び出し: 空の括弧 – 即時呼び出しまたは参照割り当て?

JavaScript 関数呼び出し: 空の括弧 – 即時呼び出しまたは参照割り当て?

Susan Sarandon
リリース: 2024-12-08 13:56:11
オリジナル
364 人が閲覧しました

JavaScript Function Calls:  Empty Parentheses – Immediate Invocation or Reference Assignment?

JavaScript 関数の呼び出し: 括弧は重要です

空の括弧を使用した関数の呼び出し、または括弧をまったく使用しない関数の呼び出しは、引数のない関数にとっては重要ではないように思えるかもしれません。ただし、詳しく調べると、微妙な違いがわかります。

即時呼び出しと参照割り当て

次の 2 つの例を考えてみましょう。

window.onload = initAll();
ログイン後にコピー
window.onload = initAll;
ログイン後にコピー

1 。即時呼び出し:

最初の例では、空の括弧は initAll() 関数を即座に呼び出し、戻り値は window.onload に割り当てられます。 initAll は onload イベントの発生時に実行される必要があるため、通常、これは望ましい動作ではありません。

2.参照の割り当て:

2 番目の例では、initAll 関数自体が window.onload に割り当てられています。これは、load イベントがトリガーされるまで関数は実行されないことを意味します。このアプローチにより、イベント ハンドラーが正しく設定されることが保証されます。

オブジェクトとしての関数

JavaScript では、関数はファーストクラスのオブジェクトです。これは、変数に格納したり、引数として渡したり、プロパティとして割り当てたりできることを意味します。このため、次の構文が有効です:

window.onload = () => initAll();
ログイン後にコピー

この場合、呼び出されるとすぐに initAll() を呼び出す匿名関数が作成されます。ただし、この外部関数の参照はまだ window.onload に割り当てられているため、イベント ハンドラーは、load イベントが両方の関数の実行をトリガーするまで待機します。

以上がJavaScript 関数呼び出し: 空の括弧 – 即時呼び出しまたは参照割り当て?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート