我想明白这个有什么用,没有这个就执行不了咯,求大神给解释一下,这个是遍历吗?for(var i=0;i<a.length;i++){funny(i)}<html><head><meta charset="gb2312"></head><body><a>1</a><br><a>2</a><br><a>3</a><br><a>4</a><br><a>5</a><br><a>6</a><br><a>7</a><br><a>8</a><br><a>9</a><br><a>10</a><script type="text/javascript"> var a=document.getElementsByTagName("a"); var funny = function(i){ a[i].onclick=function(){ alert(i+1) } } for(var i=0;i<a.length;i++){ funny(i)} </script></body></html>
3 回答
已采纳
千秋此意
TA贡献158条经验 获得超187个赞
funny(i)是闭包,为了每次能弹出不同的i而不是循环完毕后的全局变量i
/** 前三种写法都是闭包,最后一种是自定义属性 */ for (var i = 0; i < a.length; i++) { (function(i){ a[i].onclick = function() { alert(i + 1); } })(i); } for (var i = 0; i < a.length; i++) { (function(){ var index = i; a[i].onclick = function() { alert(index + 1); } })(); } for (var i = 0; i < a.length; i++) { a[i].onclick = (function(i){ return function() { alert(i + 1); } })(i); } for (var i = 0; i < a.length; i++) { a[i].index = i; a[i].onclick = function() { alert(this.index + 1); } }
添加回答
举报
0/150
提交
取消