問題タブ [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 投票する
1 に答える
591 参照

javascript - w3schools javascript クロージャの例についてさらに説明が必要

私はクロージャーを理解しようとしており、W3Schools javascript チュートリアルを見ています。これはカウンターを作ることによって彼らが与える一例です。

の説明 変数 add には、自己呼び出し関数の戻り値が割り当てられます。

自己呼び出し関数は 1 回だけ実行されます。カウンターをゼロ (0) に設定し、関数式を返します。

このように add は関数になります。「素晴らしい」部分は、親スコープのカウンターにアクセスできることです。

これは JavaScript クロージャーと呼ばれます。関数が「プライベート」変数を持つことを可能にします。

カウンターは無名関数のスコープによって保護されており、add 関数を使用してのみ変更できます。

クロージャーは、親関数が閉じられた後でも、親スコープにアクセスできる関数です。

説明は悪くありませんが、いくつか不明な点があります。自己呼び出し関数を使用するのが最適だったのはなぜですか? ネストされた匿名関数が自己呼び出し関数ではないのはなぜですか? また、カウンターが内部で既に返されているのに、なぜ無名関数全体を返す必要があるのでしょうか?

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

javascript - JavaScript で巻き上げられた変数

上記のコードで結果として 1 が返されるのはなぜですか?

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

angularjs - 自己呼び出しで定義されているAngularアプリモジュールにアクセスするには?

角度で単体テストを使用したいのですが、webapp私が取り組んでいるのは、その構造に基づいて作成されています。例えば ​​:

そしてそのコントローラーの1つ:

また、テストでコントローラーが見つからないため、このアプリに単体テストを使用する方法がわかりません。

これは私のコントローラーとテストです:

そしてカルマテストでこれを見せてくださいerror

エラー: [$injector:modulerr] モジュール DashboardCtrl のインスタンス化に失敗しました: エラー: [$injector:nomod] Module 'DashboardCtrl' is not available! モジュール名のつづりを間違えたか、モジュールをロードするのを忘れました。モジュールを登録する場合は、依存関係を 2 番目の引数として指定してください。

"DashboardCtrl"これは、コントローラーが見つからないことを示しています。

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

javascript - 自己呼び出し関数 javascript

Javascriptで自己呼び出し関数用にこのコードを記述しようとしました:

しかし、最後の行で次のエラー メッセージを受け取りました。

  • myFunc が定義されていません
0 投票する
2 に答える
39 参照

javascript - 自己呼び出し関数はプライベート値を保持していません

自己呼び出し関数がプライベート値を保持しているのに、他のタイプが保持されていない理由を理解しようとしています。

価値を高めますか

出力 : 10,11,12

このコードは値を増加させませんが

出力:10,10,10