Пожалуйста, рассмотрите следующий код 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 правильный, но я хотел бы использовать один и тот же код в обоих браузерах. Может ли кто-нибудь указать, если я где-то ошибся?