0

请考虑以下 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 控制台输出是正确的,但我想在两个浏览器中使用相同的代码。如果我在某个地方犯了错误,有人可以指出吗?

4

0 回答 0