for循环闭包问题

记录我学JavaScript踩的第一个坑

在实现一个输入数量算商品总价的表格,可事件函数内部的i值总获取不对,还好问了群里的大神,太感谢了。
说是一个for循环内部嵌套事件函数引起的闭包问题for循环闭包问题i获取不到的原因是因为,事件函数内部没有i这个值,就会到外部函数查找,而外部函数的值是每次循环后的结果,所以一直都是获取到7,下面的赋值自然就会报错。

解决方案:

解决方法一: 将for循环的var改成let,大神说的,还没了解机制
解决方法二: 将内部函数外加一层闭包,i 以函数参数形式传递给内层函数
for循环闭包问题
解决方法三:找个属性将i值保存起来
for循环闭包问题