問題タブ [closures]

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 に答える
85728 参照

c# - C#の「クロージャ」とは何ですか?

複製

.NETのクロージャ

C#のクロージャとは何ですか?

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

javascript - ここでグローバル変数の代わりに Javascript クロージャを使用できますか?

現在のセットアップ:

クロージャを使用できますか?

0 投票する
9 に答える
24338 参照

javascript - クロージャはコールバックとどう違うのですか?

コールバックについて質問し、別の質問にたどり着きました(コメントを参照)。クロージャはコールバックとどう違うのですか?

0 投票する
7 に答える
2880 参照

javascript - JavaScript のスコープとクロージャー

私は頭をクロージャーに巻き込もうとしています(どこかに冗談があります)、これに出くわしました:

これはどのように作動しますか?関数を括弧に入れる目的は何ですか? 後で空の括弧が表示されるのはなぜですか?

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

javascript - JavaScriptでの入れ子関数のメモリ使用量

私はjavascriptのクロージャをある程度理解していますが、ネストされた関数をどのように処理するかについてはよくわかりません。例えば:

関数を呼び出すたびに新しいクロージャが作成されることは知ってaいますが、そのクロージャには、渡された無名関数の新しいインスタンスも含まれていsomeFunctionますか?代わりにffを実行した方がよいでしょうか。

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

javascript - この jQuery コード スニペットはメモリ リークを引き起こしますか?

次のjqueryコードがメモリリークを引き起こすかどうか疑問に思っています:

私の理解で$('tr:last', parent)は、DOMオブジェクトである最後の行ですが、匿名関数では、クロージャーはこのDOMオブジェクトをスコープに持っているため、DOMとjsオブジェクトの間に循環参照があります。

しかし、本当にリークがあるとすれば、Manning が発行している人気の本「jQuery in Action」にそのようなコードがたくさんあることがわかります。jQueryコーディングの有害な「ベストプラクティス」ですか?

しかし、私の理解が正しいかどうかはわかりません。コメントと訂正をお願いします。ありがとう!

0 投票する
7 に答える
18369 参照

javascript - JavaScript はローカル変数によるクロージャをサポートしていませんか?

私はこのコードについて非常に困惑しています:

私の理解では、印刷する必要があります0,1,2,3,4(これはクロージャーの概念ではありませんか?)。

代わりに、それは印刷し5,5,5,5,5ます。

Rhino と Firefox を試してみました。誰かが私にこの振る舞いを説明してもらえますか?

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

javascript - Javascript でプライベート インスタンス変数にアクセスする静的パブリック メソッド

私はディアスの本 Pro JavaScript Design Patterns を読んでいます。素晴らしい本。私自身は決してプロではありません。私の質問: プライベート インスタンス変数にアクセスできる静的関数を使用できますか? 私のプログラムにはたくさんのデバイスがあり、あるデバイスの出力を別のデバイスの入力に接続できます。この情報は、入力配列と出力配列に格納されます。これが私のコードです:

Device.connect はデバイスの出力および入力配列にアクセスできないため、これは機能していないようです。それを公開するデバイスに特権メソッド(pushToOutputsなど)を追加せずにそれらに到達する方法はありますか?

ありがとう!スティーブ。