首页 > 学海无涯 > 闭包
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 , 转载请保留.

One Response to “闭包”

  1. #1 kyomic 回复 | 引用 Post:2010-07-06 22:59

    like this?

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

发表评论