次のパラメーター化 (変更できません) を持つ関数を使用しています。
my_function(data, callback_function(results, status) {});
「data」(callback_function が使用する)、「results」、または「status」に追加できない追加情報を callback_function に渡す必要があります。具体的には、この情報は my_function 呼び出しが含まれる for ループのカウンターです。
これを行うには、callback_function の本体内にカウンターへの参照を含めます。
for(var i = 0; i < 10; i++) {
var data = 'cannot modify this data';
my_function(data, function (results, status) { alert(i); });
}
残念ながら、i の最終値 (この場合は 9) は 10 回出力されています。意図された動作は、ループ内の i の各値 (0 から 9) が出力されることです。
動的関数がスコープ外の変数にアクセスすることは可能ですが、それらが定義されているスコープ内にありますか?