ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「window.onload = initAll();」と「window.onload = initAll;」の違いは何ですか?
JavaScript 関数呼び出しのかっこ
JavaScript では、引数が関与していない場合、かっこなしで関数を呼び出すのは無害に見えるかもしれません。ただし、2 つの構文の間には微妙な違いが生じます。
window.onload = initAll();
window.onload = initAll;
括弧が使用される場合:
関数呼び出しで括弧を使用する。最初の例では、関数をすぐに実行します。関数の実行結果があれば、その結果は関数呼び出しを受け取る変数またはプロパティ (この場合は window.onload) に割り当てられます。関数自体をリスナーに割り当てる場合、通常、この実行は望ましくありません。
括弧が省略されている場合:
括弧を省略します。 2 番目の例では、関数参照を変数またはプロパティに直接割り当てます。この関数は、リスナーまたはイベントによってトリガーされた場合にのみ実行され、意図した動作が保証されます。
追加メモ:
遭遇する可能性のある別のバリエーションは次のとおりです:
window.onload = () => initAll();
これは、initAll をラップしたアロー関数を使用します。呼び出し時にすぐに initAll を呼び出す関数を作成します。ただし、外部関数は window.onload に割り当てられているため、initAll がロード イベントでのみ実行されることが保証されます。
以上がJavaScript の「window.onload = initAll();」と「window.onload = initAll;」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。