for(var i=0;i<allBtn.length;i++){ allBtn[i].index=i; allBtn[i].onclick=function(){ oldFirstimg.className=""; oldFirstimg=allImg[this.index]; allImg[this.index].className='showpic'; oldFirstbtn.className=""; oldFirstbtn=this; this.className="showbtn"; } } 为什么this。index不能换成 i
2 回答
Suber丶林
TA贡献75条经验 获得超180个赞
因为JavaScript的for、while、switch等都没有局部作用域,所以for循环结束后,i的值就成allBtn.length了。
这个在ES6标准里已经定义好let关键字来声明局部作用域了,你可以去玩玩。
如果不用this.index的存变量方式的话,可以使用闭包的方式,瞬间就高大上了。
添加回答
举报
0/150
提交
取消