問題タブ [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.
javascript - forループの自己呼び出し関数
https://github.com/Khan/khan-exercises/blob/master/khan-exercise.jsのコードは 次のとおりです。
奇妙なこと: 通常の for ループ コード ブロックの代わりに、自己呼び出し関数が表示されます!(他の自己呼び出し関数の内部) それはなぜですか? この機能はどのように実行されますか?
javascript - これら 3 種類のモジュール パターンの違いは何ですか?
違いは何ですか (特に 3 番目のバリアント)? それらはすべて同じですか?
javascript - 次の 2 つの自己呼び出し関数が機能しません
このコードの何が問題なのですか?
javascript - JavaScriptモジュールをグローバルスコープに追加するクロスプラットフォームの方法は何ですか?
store.jsのソースコード、特にそれ自体がグローバルスコープにどのように追加されるかを調べていました:
最後のステートメントは理解できthis.store = store
ますが、他のステートメントはどうですか? module
およびdefine
関数とは何ですか? this.store = store
まだすべてのブラウザーで動作しませんか?
より一般的には、グローバル スコープにモジュールを追加するための正しいクロスブラウザーの方法は何ですか?
javascript - オブジェクト内の setTimeout による自己呼び出し関数
以下を介して、まったく同じオブジェクトメソッド内でjsオブジェクトのメソッドを呼び出したいと思いますsetTimeout
。
ただし、次のエラー メッセージが表示されます。
ここで何が欠けていますか?setTimeout 関数内の文字列を変更するにはどうすればよいですか?
ご協力いただきありがとうございます!
編集:Macでfirefoxを使用しています。
javascript - 自己呼び出し関数を呼び出す方法
この方法で自己呼び出し関数を呼び出そうとしています:
それは一度だけ機能します。window.resizeに応答がありませんありがとう
javascript - Ajax が自己呼び出しを使用しないのはなぜですか?
自己呼び出しclosure
関数の奇妙な構文は、本質的に関数自体を呼び出していることを意味するため、self-invoking
. これを示すコードを次に示します。
...上記の 2 番目の関数は、末尾の括弧がないinnerHTML
ため実行されず、関数全体になります。では、標準の Ajax 構文が同じように自己呼び出しを使用しないのはなぜでしょうか? が独自の方法で属性をXMLHttpRequest
処理しているように見えます。onreadystatechange
次に例を示します。
終わりの括弧がないことに
注意してください... Ajax 構文と、それが正確に何をしているのかをさらに理解したいので、これを尋ねています。
javascript - 名前付き自己呼び出し関数
名前付き自己呼び出し関数を使用する理由はありますか?
例えば:
私の学習が私を導いた限り、これは匿名の自己呼び出し関数と同じように機能しますが、追加の利点はなく(呼び出し後に再度呼び出すことはできません)、グローバルを「汚染」しないため、追加の欠点はありません。スコープ(私は思う)。
上記のような自己呼び出し関数に名前を付けることが理にかなっている場合はありますか?
javascript - JavaScript の自己呼び出し関数
次のような自己呼び出し関数があります。
typeof f
は常に、最後の関数定義で返されるものの型です。が最後である場合のようh
に、それは です"string"
が、私が削除h
してg
最後として持っている場合は、"number"
です。
誰かが理由を説明できますか?
javascript - 自己呼び出し関数による配列の初期化
自己呼び出し関数で配列を初期化しようとしています。例として簡単にするために、初期値は 0 から 4 までの数字の 2 乗であると仮定します。new
キーワードは新しいオブジェクトを作成するため、this.x
またはで新しく作成されたオブジェクトのフィールドにアクセスできます。キーワードthis[x]
に続く IIFE 本体内new
。コードは次のとおりです。
これで、 、 getarr
などの変数の対応するフィールドにアクセスできます。オブジェクトと同じように扱うだけならまったく問題ありませんが、配列のように扱おうとすると問題が発生します。つまり、次のような関数を適用することはできません。arr[4]
16
arr
reduce
これarr
は、実際には配列ではなくオブジェクトであるためです。
だからここに私の質問があります:このメソッド内でそのような動作を回避するにはどうすればよいですか? この新しく作成されたオブジェクトを配列として JavaScript に解釈させる方法は?