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/>");
 }
帮看看 谢谢

解决方案 »

  1.   

    result[i]=function(num){
    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;};
      

  2.   

    看看这篇文章 或许你就突然间想明白了
    http://blog.csdn.net/hitman9099/article/details/3854171