我正在使用具有以下参数化的函数(无法更改):
my_function(data, callback_function(results, status) {});
我需要将无法添加到“数据”(回调函数使用)或“结果”或“状态”的附加信息传递给回调函数。具体来说,此信息是 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)。
动态函数是否可以访问其范围之外但在其定义范围内的变量?