这是一个创建于 3589 天前的主题,其中的信息可能已经有所发展或是发生改变。
C
JS
为何结果从第二个开始就对不上了
2 条回复 • 2016-06-10 17:18:33 +08:00
 |
|
1
Biwood 2016 年 6 月 10 日
典型的作用域问题, JS 在 ES6 之前没有块级作用域,所以 for 循环结束后, x 对象里面所有值里面的 i 的引用都是相同的
如果你用的是 ES6 ,可以用 let 声明变量来解决这个问题
|
 |
|
2
lyog 2016 年 6 月 10 日
``` for( var i=0; i<size_x; i++ ) { (function(){ var temp = i; x[i] = {*************}; })(); } ```
|