对于这样一个简单的结构,想要实现点击每个li的时候背景颜色变换
如果该处使用list[i],点击li时,控制台会输出Cannot set properties of undefined
原因是JS会先将for循环执行完,即分别给li标签注册了一个onlick事件,当点击li时,才会执行function中的内容。
所以当for循环执行完(退出循环时),i为5
当点击li时,执行的实际上为
此时实际上已经与外for循环无关
为list[i]就是list[5],但list[5],不存在,所以输出undefined
但是如果使用this
this 指向的就是当前list[i],故正确