問題タブ [self-invoking-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2930 参照

javascript - forループの自己呼び出し関数

https://github.com/Khan/khan-exercises/blob/master/khan-exercise.jsのコードは 次のとおりです。

奇妙なこと: 通常の for ループ コード ブロックの代わりに、自己呼び出し関数が表示されます!(他の自己呼び出し関数の内部) それはなぜですか? この機能はどのように実行されますか?

0 投票する
3 に答える
342 参照

javascript - これら 3 種類のモジュール パターンの違いは何ですか?

違いは何ですか (特に 3 番目のバリアント)? それらはすべて同じですか?

0 投票する
2 に答える
81 参照

javascript - 次の 2 つの自己呼び出し関数が機能しません

このコードの何が問題なのですか?

http://jsfiddle.net/VvaCX/

0 投票する
1 に答える
654 参照

javascript - JavaScriptモジュールをグローバルスコープに追加するクロスプラットフォームの方法は何ですか?

store.jsのソースコード、特にそれ自体がグローバルスコープにどのように追加されるかを調べていました:

最後のステートメントは理解できthis.store = storeますが、他のステートメントはどうですか? moduleおよびdefine関数とは何ですか? this.store = storeまだすべてのブラウザーで動作しませんか?

より一般的には、グローバル スコープにモジュールを追加するための正しいクロスブラウザーの方法は何ですか?

0 投票する
4 に答える
8240 参照

javascript - オブジェクト内の setTimeout による自己呼び出し関数

以下を介して、まったく同じオブジェクトメソッド内でjsオブジェクトのメソッドを呼び出したいと思いますsetTimeout

ただし、次のエラー メッセージが表示されます。

ここで何が欠けていますか?setTimeout 関数内の文字列を変更するにはどうすればよいですか?

ご協力いただきありがとうございます!

編集:Macでfirefoxを使用しています。

0 投票する
2 に答える
142 参照

javascript - 自己呼び出し関数を呼び出す方法

この方法で自己呼び出し関数を呼び出そうとしています:

それは一度だけ機能します。window.resizeに応答がありませんありがとう

0 投票する
3 に答える
286 参照

javascript - Ajax が自己呼び出しを使用しないのはなぜですか?

自己呼び出しclosure関数の奇妙な構文は、本質的に関数自体を呼び出していることを意味するため、self-invoking. これを示すコードを次に示します。


...上記の 2 番目の関数は、末尾の括弧がないinnerHTMLため実行されず、関数全体になります。では、標準の Ajax 構文が同じように自己呼び出しを使用しないのはなぜでしょうか? が独自の方法で属性をXMLHttpRequest処理しているように見えます。onreadystatechange次に例を示します。


終わりの括弧がないことに 注意してください... Ajax 構文と、それが正確に何をしているのかをさらに理解したいので、これを尋ねています。

0 投票する
6 に答える
6562 参照

javascript - 名前付き自己呼び出し関数

名前付き自己呼び出し関数を使用する理由はありますか?

例えば:

私の学習が私を導いた限り、これは匿名の自己呼び出し関数と同じように機能しますが、追加の利点はなく(呼び出し後に再度呼び出すことはできません)、グローバルを「汚染」しないため、追加の欠点はありません。スコープ(私は思う)。

上記のような自己呼び出し関数に名前を付けることが理にかなっている場合はありますか?

0 投票する
3 に答える
371 参照

javascript - JavaScript の自己呼び出し関数

次のような自己呼び出し関数があります。

typeof fは常に、最後の関数定義で返されるものの型です。が最後である場合のようhに、それは です"string"が、私が削除hしてg最後として持っている場合は、"number"です。

誰かが理由を説明できますか?

0 投票する
2 に答える
2092 参照

javascript - 自己呼び出し関数による配列の初期化

自己呼び出し関数で配列を初期化しようとしています。例として簡単にするために、初期値は 0 から 4 までの数字の 2 乗であると仮定します。newキーワードは新しいオブジェクトを作成するため、this.xまたはで新しく作成されたオブジェクトのフィールドにアクセスできます。キーワードthis[x]に続く IIFE 本体内new。コードは次のとおりです。

これで、 、 getarrなどの変数の対応するフィールドにアクセスできます。オブジェクトと同じように扱うだけならまったく問題ありませんが、配列のように扱おうとすると問題が発生します。つまり、次のような関数を適用することはできません。arr[4]16arrreduce

これarrは、実際には配列ではなくオブジェクトであるためです。

だからここに私の質問があります:このメソッド内でそのような動作を回避するにはどうすればよいですか? この新しく作成されたオブジェクトを配列として JavaScript に解釈させる方法は?