Господа, здравствуйте,
проходил сегодня собеседование, и не могу пока на него найти точный ответ, почему происходит такая проблема. Суть задачи в чем: есть три ноды, надо на них повесить клик-обработчик, который бы выводил индекс в цикле.
Вот неправильно рабочий код:
var docs = ['div1', 'div2', 'div3']
for (var i = 1; i < docs.length; i++) {
document.getElementById(docs[i]).onclick = function() {
alert(i)
}
}
Этот код, как вы поняли, работает, но при клике будет выводиться неверный индекс
i
Объясните, пожалуйста, почему, если мы будем вместо var использовать let для переменной индекса, происходит такой коллапс?