autochange这个函数有两个地方调用,1是btn点击时候,2是setinterval里面,即你说的计数器里面;
在1所处情况的时候,autochange会被传递过来一个参数obj,这个obj是存在(为传递过来的this,由于是点击事件,所以便是函数的执行体为btn[i])的,即!obj是false不执行这句话;
当为2所处情况的时候,autochange并没有传递过来参数,即obj是underfined。那么!obj便是为true,此时开始执行这句话。经过判断,此时obj便是btn[index],index计数器执行此时而增加