一个关于 for 和 onclick() 事件的问题?-灵析社区

横刀立马007

一个学习案例中遇到的问题 index.html index.css .box { width: 100px; height: 50px; border: 1px solid; } index.js var boxs = document.getElementsByClassName('box'); for (var i = 0; i 因为之前写代码在 onclick 事件里基本都是用 this, 或者用 let 来代替 var 来定义变量, 所以绕过了这个坑 > 但现在遇到了这样的 bug, 还是想问下导致这个问题的原因是什么? ### 补充 关于 var 的特性, 我能想到的是 全局污染和变量提升, 简单地说 * 全局污染: for 中定义 var, 作用域会提升到全局 * 变量提升: 允许先调用后定义 但是上述两个特性都不能合理的解释 -> `为什么在for循环中定义的onclick, 循环变量i在onclick事件中永远是for最终执行后的i?`

阅读量:202

点赞量:0

问AI
梦想缔造狮
你换个思路,在你的代码中有几个i呢,是不是只有一个,所有当for循环结束i的值也只能是一个,因为i一个变量不可能同时又是1又是2又是3