function createFunctions(){
var result = new Array();
for(var i=0;i<10;i++){
result[i]=function(num){
return function(){
return num;
};
}(i);//这个i与num怎样进行值传递的,最后付给num的
}
return result;
} var funcs=createFunctions();
for(var i=0;i<funcs.length;i++){ document.write(funcs[i]()+"<br/>");
}
帮看看 谢谢
var result = new Array();
for(var i=0;i<10;i++){
result[i]=function(num){
return function(){
return num;
};
}(i);//这个i与num怎样进行值传递的,最后付给num的
}
return result;
} var funcs=createFunctions();
for(var i=0;i<funcs.length;i++){ document.write(funcs[i]()+"<br/>");
}
帮看看 谢谢
return function(){
return num;};
}(i);//这个i与num怎样进行值传递的,最后付给num的
}
return result;
}最外层for循环,循环10次。
result[i]=function(num){}(i);//每次循环开始就先执行这个匿名函数,把i当参数传进去,num是形参。也是就是i的值。return function(){//这个是个闭包,执行外外面的函数,就返回这个闭包。闭包里面rentrun num,因为闭包的作用所以当for循环结束,也就是到10条件不成立的时候,闭包还是能访问到当前的i值,也就是每次调用外层匿名函数的i值,也就是num。
return num;};
http://blog.csdn.net/hitman9099/article/details/3854171