闭包的弊端

function fn1(){

var fns = new Array();

//  这里的i的作用域是在fn1里面的

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

fns[i] = function(){

return i;

}

}

return fns;

}

var fs = fn1();

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

// 这里取i他首先在自己的空间找,发现并没有i这个变量。所以它会到上一级去找。然后在

fn1中发现i。最后i已经是10了。

document.write(fs[i]()+"<br/>");

}

输出如下:

 

 

 

 

posted on 2013-07-02 14:43  菜鸟半只  阅读(212)  评论(0)    收藏  举报

导航