Я нашел много тем, объясняющих эту проблему, о том, как я могу исправить следующий код с помощью var, как этот http://conceptf1.blogspot.com/2013/11/javascript-closures.html или этот Закрытие JavaScript внутри циклов - простой практический пример.
Но я действительно не могу понять, почему он не работает при использовании var и работает при использовании let.
var funcs = [];
for (var i = 0; i < 3; i++) { // let create 3 functions
funcs[i] = function() { // and store them in funcs
console.log("My value: " + i); // each should log its value.
};
}
for (var j = 0; j < 3; j++) {
funcs[j](); // and now let run each one to see
}
// outputs 3 3 3
У меня действительно нет подсказки...