处理这种情况的一种常见方法(如果很难看)是使用另一个函数,该函数立即被调用以创建一个用于保存变量的范围。
for(var i = 0; i < length; i++) { var variable = variables[i]; otherVariable.doSomething(function(v) { return function(err) { }; }(variable));}请注意,在立即调用的函数内部,正在创建并返回的回调将参数引用给函数,
v而不是外部
variable。为了使阅读效果更好,我建议将回调的构造函数提取为命名函数。
function callbackFor(v) { return function(err) { };}for(var i = 0; i < length; i++) { var variable = variables[i]; otherVariable.doSomething(callbackFor(variable));}

![在JavaScript循环中使用回调时,是否有任何方法可以保存循环中更新的变量以在回调中使用?[重复] 在JavaScript循环中使用回调时,是否有任何方法可以保存循环中更新的变量以在回调中使用?[重复]](http://www.mshxw.com/aiimages/31/483925.png)
