問題タブ [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 - w3schools javascript クロージャの例についてさらに説明が必要
私はクロージャーを理解しようとしており、W3Schools javascript チュートリアルを見ています。これはカウンターを作ることによって彼らが与える一例です。
例の説明 変数 add には、自己呼び出し関数の戻り値が割り当てられます。
自己呼び出し関数は 1 回だけ実行されます。カウンターをゼロ (0) に設定し、関数式を返します。
このように add は関数になります。「素晴らしい」部分は、親スコープのカウンターにアクセスできることです。
これは JavaScript クロージャーと呼ばれます。関数が「プライベート」変数を持つことを可能にします。
カウンターは無名関数のスコープによって保護されており、add 関数を使用してのみ変更できます。
注 クロージャーは、親関数が閉じられた後でも、親スコープにアクセスできる関数です。
説明は悪くありませんが、いくつか不明な点があります。自己呼び出し関数を使用するのが最適だったのはなぜですか? ネストされた匿名関数が自己呼び出し関数ではないのはなぜですか? また、カウンターが内部で既に返されているのに、なぜ無名関数全体を返す必要があるのでしょうか?
javascript - JavaScript で巻き上げられた変数
上記のコードで結果として 1 が返されるのはなぜですか?
angularjs - 自己呼び出しで定義されているAngularアプリモジュールにアクセスするには?
角度で単体テストを使用したいのですが、webapp
私が取り組んでいるのは、その構造に基づいて作成されています。例えば :
そしてそのコントローラーの1つ:
また、テストでコントローラーが見つからないため、このアプリに単体テストを使用する方法がわかりません。
これは私のコントローラーとテストです:
そしてカルマテストでこれを見せてくださいerror
:
エラー: [$injector:modulerr] モジュール DashboardCtrl のインスタンス化に失敗しました: エラー: [$injector:nomod] Module 'DashboardCtrl' is not available! モジュール名のつづりを間違えたか、モジュールをロードするのを忘れました。モジュールを登録する場合は、依存関係を 2 番目の引数として指定してください。
"DashboardCtrl"
これは、コントローラーが見つからないことを示しています。
javascript - 自己呼び出し関数 javascript
Javascriptで自己呼び出し関数用にこのコードを記述しようとしました:
しかし、最後の行で次のエラー メッセージを受け取りました。
- myFunc が定義されていません
javascript - 自己呼び出し関数はプライベート値を保持していません
自己呼び出し関数がプライベート値を保持しているのに、他のタイプが保持されていない理由を理解しようとしています。
価値を高めますか
出力 : 10,11,12
このコードは値を増加させませんが
出力:10,10,10