私のコールバック関数が前に定義した変数x
を必要とするクロージャです。このバグ私は、しかし、私は多くは、この代わりに...閉鎖代替
function main() {
var x = "Something";
foo('do stuff', bar);
}
function bar(stuffResponse) {
var y = x + stuffResponse;
}
しかし、明らか場合のように私のコードを書くことを好むので、私は私のbar
機能は、自身の外で変数を依存するが、すべてのほとんどのことを好きではないとして、私はこれを行うbar
は何も考えていないx
はもうです。前者の機能を維持しながら後者のスタイルを達成するきれいな方法はありますか?
私はクロージャに頼るのを避ける理由はありません。しかし、あなたはいつも 'bar() 'の引数として' x'を渡すことができます – haim770
これは本当に問題ではない単純な例です。もっと複雑になり、クロージャの中にもっと多くのものが必要です続く。そして、コールバック関数として使用される 'bar()'の引数として 'x'を渡すことはできません。 –
本当に' x'がクロージャの外側のスコープで定義されている必要がありますか?この必要性)。スニペットを更新して、達成しようとしているものに近いものを表示できますか? –