[解決済み] JavaScriptの関数に名前を付けて、すぐに実行することはできますか?
2022-12-16 03:25:43
質問
結構な数があるのですが。
function addEventsAndStuff() {
// bla bla
}
addEventsAndStuff();
function sendStuffToServer() {
// send stuff
// get HTML in response
// replace DOM
// add events:
addEventsAndStuff();
}
DOM が変更されたため、以前に添付されたイベントがなくなったので、イベントを再追加する必要があります。それらは同様に初期に添付されなければならないので(当たり前ですが)、DRYであるために素晴らしい関数にあります。
このセットアップには何も問題はないのですが(というかあるのか?私は
addEventsAndStuff()
関数を作ってすぐに呼び出すと、素人っぽさが出ません。
以下はどちらもシンタックスエラーで応答します。
function addEventsAndStuff() {
alert('oele');
}();
(function addEventsAndStuff() {
alert('oele');
})();
誰かいませんか?
どのように解決するのですか?
質問で投稿された例では何も問題はありません。 他のやり方は変に見えるかもしれませんが。
var addEventsAndStuff;
(addEventsAndStuff = function(){
// add events, and ... stuff
})();
JavaScriptで関数を定義するには、2つの方法があります。 関数の宣言です。
function foo(){ ... }
という関数式と 任意 のように、上記以外の関数を定義する方法があります。
var foo = function(){};
(function(){})();
var foo = {bar : function(){}};
...など
関数式は名前をつけることができますが、その名前は含むスコープに伝搬されません。 このコードが有効であることを意味する。
(function foo(){
foo(); // recursion for some reason
}());
が、これは違う。
(function foo(){
...
}());
foo(); // foo does not exist
つまり、関数に名前を付けてすぐに呼び出すためには、ローカル変数を定義し、そこに関数を式として代入し、呼び出す必要があるのです。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] JavaScriptでNULL、未定義、空白の変数をチェックする標準的な関数はありますか?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] jQueryの$という記号の意味は何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] Chart.jsを使ってドーナツチャートの中にテキストを追加するには?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] これは純関数ですか?