您好我有一个同步调用的回调(即我知道顺序),只是等待调用callbcak
.someCallback(function () {
var abc = ['a', 'b', 'c'];
for (var i = 0; i < 3; i++) {
//closure
var outer = function (ii) {
alert(ii);
var inner = function (ii) {
return abc[ii];
}
return inner(ii);
} //closure
return outer(i);
}); //close loop
});
我没有使用任何框架,只是原始.js;我无法访问此回调之外的代码。
问题是return outer(i)
时丢失内部变量;不能越过i = 0,或者在调用outer(i)
如何做到这一点。
答案 0 :(得分:1)
在这里,不是很干净,但有效:
var i = 0
.someCallback(function() {
var abc = ['a','b','c']
//closure
var outer = function(ii){
alert(ii)
var inner = function(ii){
return abc[ii];
}
return inner(ii);
}//closure
i += 1
return outer(i-1)
});//close function and call
希望这有帮助!