2010六月24
闭包
曾几何时碰到过某考题
var dom;
for (var i = 0; i < 6; i++){
dom = document.getElementById("rect"+i);
dom.addEventListener("click", function(){ alert(i)});
}
好吧,很显然无论click哪个dom都会输出6. 问题也很简洁怎么解决这问题. 当时没往闭包那想.
dom.addEventListener("click",(function(){
function ff (f) {
var ffv = f;
function av () {
alert(ffv);
}
return av
}
return ff(i);
})());
胡乱写了一下,其实就是这么回事. 说来说去不过就是个作用域的问题. 今天身体不舒服, 随便写一下. 应该还能再简单些.
本文地址:http://blog.riamm.com/?p=428 , 转载请保留.

like this?
document.addLis(“click”,(function(arg){alert(arg);})(i))