function a(){
var i=0;
}
a();
这样的代码是典型的没有闭包的代码:
for(var i = 0; i < 9;i++){
a.childNodes[i].onclick = function(){
alert(i);
};
}
for(var i = 0; i < 9;i++){
var fn = function(m){
var i = m; // 利用fn保存i。
return function(){
alert(i); // 我们已经利用闭包,把变量i保存起来了
};
};
a.childNodes[i].onclick = fn(i);
}
浙公网安备 33010602011771号