js闭包个人理解--to be continued

1、闭包:在一个函数内部的匿名函数,不管前面有没有return,都可以看做是一个闭包

2、闭包只能取得包含函数中任何变量的最后一个值,因为闭包所保存的是整个变量对象。

      如:function createF(){

                   var res=[];

                   for(var i=0;i<10;i++){

                         res[i]=function(){ return i;}

                   }

                   return res;

              }

      此时返回的是一个数组,数组元素都是10.解决这种问题的方法就是使用匿名包装器,

           res[i]=function(num){

                return function(){

                      return num;

                };

           }(i);

你可能感兴趣的:(js闭包个人理解--to be continued)