Есть задача:
https://learn.javascript.ru/task/load-img-callback
В решении этой задачи есть строка с кодом:
for (var i = 0; i < sources.length; i++) {
var img = document.createElement('img');
img.onload = img.onerror = onLoad;
img.src = sources[i];
}
Как я понимаю, переменная, объявленная через var, будет одна на все итерации цикла for. Получается, что каждая новая итерация цикла будет перезаписывать переменную img новыми данными, но в данной ситуации интерпретатор для каждой итерации запоминает img как отдельную новую переменную и запоминает её в памяти отдельно. Получается, что каждая итерация не переприсваивает переменную img, её обработчики и src, а создает новую. На выходе мы имеем 3 разных img со своим атрибутом src и своими обработчиками. Почему так происходит? Это из-за атрибута src?