猿问

js相关问题啊

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

qq_呢呢昵_03394366
浏览 1183回答 2
2回答

Suber丶林

因为JavaScript的for、while、switch等都没有局部作用域,所以for循环结束后,i的值就成allBtn.length了。这个在ES6标准里已经定义好let关键字来声明局部作用域了,你可以去玩玩。如果不用this.index的存变量方式的话,可以使用闭包的方式,瞬间就高大上了。

qyy2499760117_叶子

this指的是allBtn[i].onclick当前的操作,index是循环allBtn的数组后的属性值。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答