li添加点击事件 为什么点击输出i值总为li的长度 它是先给每个li绑定了点击事件 此时li已经到li的长度 所以后面点击输出的i是li的长度 ? 疑惑满满 求解

li添加点击事件 为什么点击输出i值总为li的长度 它是先给每个li绑定了点击事件 此时li已经到li的长度 所以后面点击输出的i是li的长度 ? 疑惑满满 求解

var申明的这个i变量在这个script块中是全局变量,所以函数内部得到的是i最后for循环后的值,需要做闭包。
要么var改let,let是块级别变量,只在对应的代码块中能访问,自动形成es5的闭包效果。
具体可以参考阮一峰老师的es6教程
ES6 入门教程
https://es6.ruanyifeng.com/#docs/let
