Javascript 输出异常。。为什么?

Javascript 输出异常。。为什么?,javascript,Javascript,我有很多天,我不能运行这个脚本 var b=[9,8,7,6,5,4,3,2,1]; var a=函数{ var W=[]; b{ W[W.length]={ 索引:k, fx:函数{ console.logk; } } } 返回W; }; console.loga; forvar j=0;a[j];j++a[j].fx 创建的每个函数fx都引用变量var k。它们不保存k的当前值,只保存对k的引用。这意味着在for循环完成后,当您运行函数时,k的值现在是8,它们都会打印出来 避免这种

我有很多天,我不能运行这个脚本

var b=[9,8,7,6,5,4,3,2,1]; var a=函数{ var W=[]; b{ W[W.length]={ 索引:k, fx:函数{ console.logk; } } } 返回W; }; console.loga; forvar j=0;a[j];j++a[j].fx 创建的每个函数fx都引用变量var k。它们不保存k的当前值,只保存对k的引用。这意味着在for循环完成后,当您运行函数时,k的值现在是8,它们都会打印出来

避免这种情况并为每个函数提供自己的变量/值的一种方法是更改var k,使k在ECMAScript 6之后可用。看

var b=[9,8,7,6,5,4,3,2,1]; var a=函数{ var W=[]; 对于b{ W[W.length]={ 索引:k, fx:函数{ console.logk; } } } 返回W; }; forvar j=0;a[j];j++
a[j].外汇;你能解释一下你想达到什么目的吗。。谢谢我注意到LET只受最新浏览器的支持。如何提高与旧浏览器的兼容性?有关几种解决方案,请参阅。