問題タブ [lexical-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.
javascript - これらのブロックの JS スコープはどのように機能しますか?
以下が 1,2 を生成し、もう一方が 5 を生成する理由を誰か説明できますか? 両方とも 5 を生成するべきではありませんか?
JS クロージャーに関するいくつかの記事を読んだことに基づいて、両方とも 5 を生成することを期待しています。
ありがとう!
javascript - 関数がクロージャ JavaScript でどのように呼び出されたかを特定する
最近、乗算演算を計算し、答えを返さなければならない hackerrank で 1 つの問題に直面しました。例えば
ここで、関数がさまざまな方法で呼び出す可能性のある問題を次に示します。
2番目のmultiply(4)(5)のアプローチを閉じる必要があることはわかっています。私はそのためのコードを書いていました
次に、乗算関数が 3 つの引数multiply(4)(5)(6) で呼び出されたとします。関数がどのように呼び出されたかを特定する方法と、すべての入力に対して共通のソリューションを作成する方法を教えてください。
どんな助けでも大歓迎です。ありがとう
scheme - Scheme let ブロックでグローバルに定義された関数を一時的に上書きしますか?
次の機能があるとします。
別g
の で一時的に呼び出したい。たとえば、次のようなものです。 f
上記のコードを 7 に評価したいのですが、そうではありません。代わりに、のスコープ外g
で を呼び出すため、 6 と評価されます。f
let
g
の内部で再定義せlet
ずに、また の定義の本体全体をインライン化せずにこれを行う方法はありg
ますlet
か? (実際にg
は、非常に大きく複雑な関数になる場合があります)。