[解決済み] JavaScriptで、括弧を付けて関数を呼び出すと、何か違いがありますか?
2022-10-26 23:04:49
質問
関数を呼び出すときに、括弧がある場合とない場合の違いに気がつきました。しかし、私は関数に引数を渡していないので、何が違うのだろうかと思いました。
window.onload = initAll();
と
window.onload = initAll;
その原理を説明してください。
どのように解決するのですか?
<ブロッククオートwindow.onload = initAll();
これは
が実行されます。
initAll()
ただちに
を代入し
関数の戻り値
を
window.onload
. これは通常
ではなく
になります。
initAll()
は、これが意味をなすために関数を返さなければならないでしょう。
window.onload = initAll;
これは
実際の関数
を
window.onload
- これは、JavaScript では @Felix が言うように、関数がファーストクラスのオブジェクトであるために可能なことです - 実行することなく
initAll
はロードイベントによって実行されます。
また、このようなものが表示されることもあります。
window.onload = () => initAll();
これは、新しい関数を作成します。
と呼ばれると
を呼び出します。
initAll
すぐに
. ここではそのために括弧が必要です"。
呼ぶ
initAll
すぐに
という部分が動作します。しかし、これは関数でラップされているため、外側の関数自体が呼び出されるまで何も実行されず、その外側の関数のリファレンスを
window.onload
に代入します。
initAll
はloadイベントでも実行されます。
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] JavaScriptで日付の書式設定に関するドキュメントはどこにありますか?
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] querySelectorAllがない場合、ライブラリを使用せずに属性で要素を取得する?
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ