程序结构大体如下
for(var i=0;i<10;i++){
function yibu(){aaa[i]}}
其中的yibu()方法是个异步方法,本来想要逐个用aaa[i]的值,结果取了10遍aaa[9]
各位大侠有没有解决办法
for(var i=0;i<10;i++){
function yibu(){aaa[i]}}
其中的yibu()方法是个异步方法,本来想要逐个用aaa[i]的值,结果取了10遍aaa[9]
各位大侠有没有解决办法
里面究竟是何内容? aaa[9]执行10遍应该和里面的内容有关吧。
function yibu(){aaa[i]}}
你把yibu()得到的值可以返回啊 用一个数组 然后循环数组 用每个数组的值
(function(){
aaa[i];
})();
}
这样写试试~
for(var i=0;i<10;i++){
function yibu(){aaa[i]}
}
这样yibu()并没有执行的
function(num){
function yibu(){aaa[num];}}(i);
}
用for循环重新定义 yibu 这个函数10遍有意义吗?
更何况这种写法在多个浏览器下是预编译的方式。
楼主先搞清楚实际结构,更新一下代码吧。
不然你的问题把大家都误导了,没办法帮你解决实际的问题。
更大的可能性是你要使用匿名闭包函数吧:var arr = [0,1,2,3,4,5,6,7,8,9];
var funcs = [];
for(var i=0;i<10;i++){
(function(index){
funcs.push(function(){
alert(arr[index]);
});
})(i);
}for(var j=0;j<10;j++){
funcs[j]();
}