请考虑以下 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
此处的链接(大约在“Block Scope with Let”处下降了三分之一)表明 Chrome 控制台输出是正确的,但我想在两个浏览器中使用相同的代码。如果我在某个地方犯了错误,有人可以指出吗?