这是一组link,你会发现每点击一下,结果总是6。WHY? 这是javascript闭包特性所引起,想了解请google。
解决问题:使用代理方法
添加下面代码:
- function delegate(fn,params,obj){
- return function(){
- fn.call(obj||window,params);
- }
- }
再将 : alink.onclick = function(){alert(i)};
改为 :
var pFunc = function(i){alert(i)};
alink.onclick = delegate(pFunc,i,alink);
即可。
本文通过一个具体的JavaScript示例,展示了闭包特性如何影响事件处理程序中的变量捕获,并提供了解决方案。
444

被折叠的 条评论
为什么被折叠?



