请考虑以下JavaScript代码:
let funcs = []
for(let x of [1,2,3]) {
funcs[x] = function(){
console.log("test:", x)
}
}
funcs[1]()
funcs[2]()
funcs[3]()
当我在Google Chrome V55.0中运行此代码时,它会生成
的预期输出test: 1
test: 2
test: 3
在浏览器控制台中。但是,如果我在Firefox V50.1.0中运行相同的代码,我会得到以下控制台输出:
test: 3
test: 3
test: 3
链接here(大约三分之一的“Block Scope with Let”)表明Chrome控制台输出是正确的,但我想在两个浏览器中使用相同的代码。有人可以指出我是否在某个地方犯了错误吗?