读书人

JS参数传递的有关问题

发布时间: 2012-11-23 00:03:43 作者: rapoo

JS参数传递的问题

请看下面代码

?

我想把点击每个层,就alert出对应的1,2,3,4,5,6

但是这样循环添加事件,alert出来的就都是6。

向大家请教下,这个参数传递过程。。

?

----------------------------------------------- 追加------------------------------

看了些文章,这样理解的
在每次for迭代的时候,这样的语句 “addEventHandler( _list[kk],? "click" ,function(){ alert(kk);}?? ); ”
中的function(){ alert(kk);}
并没有被执行,只是构建了一个函数体为”alert(kk);”的函数对象。
所以当再次调用的时候,这时的kk已经最后的一个值。

我想问,为什么这句 “alert(kk);” 就不执行?
是因为闭包的原因,这句“alert(kk);”才不执行吗?

<p>?这里的kk始终等于kk的最终值。可以这样写</p>
<pre name="code" , function(){ alert(k);} );
})(kk)

} </pre><p>?这里的kk始终等于kk的最终值。可以这样写</p>
<pre name="code" , function(){ alert(k);} );
})(kk)

} </pre>
</div>
<p><br>小弟不才,你这种写法我没有见过,连语法我都没看懂。能详细解释下吗?</p>中的function(){ alert(kk);}
并没有被执行,只是构建了一个函数体为”alert(kk);”的函数对象。
所以当再次调用的时候,这时的kk已经最后的一个值。

我想问,为什么这句就不执行?
是因为闭包的原因,这句“alert(kk);”才不执行吗?
再度构建闭包就可以了 9 楼 highzhu 2010-05-13 闭包有什么用,楼主的需求是好例子 10 楼 xuganggogo 2010-05-14 zhouyrt 写道又是这个问题,解决方式有6种,见http://snandy.iteye.com/blog/250073
谢谢,你的方法很多很不错。
能帮我解答追加的问题么? 11 楼 eclipse07 2010-05-18 ff3下执行弹出正常,ie6下只弹出一个框之后浏览器就崩溃了。不过没出现楼主的问题 12 楼 bellstar 2010-05-18 问问题到问答就好了 13 楼 lipeng88213 2010-05-27 呵呵 又见闭包

读书人网 >JavaScript

热点推荐