第一段:
for(var i=0;i<boxes.length;i++){
boxes[i].index=i+1;
boxes[i].onclick=function(){
alert(this.index)
}
}
第二段:
for(var i=0;i<boxes.length;i++){
(function(i){
boxes[i].onclick=function(){
alert(i+1);
}
})(i);
}
只看这两段代码,第二段自执行匿名函数的效率比较低吗?
第一段代码,当
boxes[i].index = i + 1
的时候就已经把当时的值赋给index了,不会出现永远输出boxes.length的情况。原答案有问题,Sorry,没有做好研究就回答:
一起学习内存泄漏