为了账号安全,请及时绑定邮箱和手机立即绑定

js相关问题啊

js相关问题啊

qq_呢呢昵_03394366 2016-06-29 21:44:53
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的存变量方式的话,可以使用闭包的方式,瞬间就高大上了。

查看完整回答
2 反对 回复 2016-06-30
?
qyy2499760117_叶子

TA贡献188条经验 获得超91个赞

this指的是allBtn[i].onclick当前的操作,index是循环allBtn的数组后的属性值。

查看完整回答
反对 回复 2016-06-30
  • 2 回答
  • 0 关注
  • 1182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信