Показать сообщение отдельно
  #1 (permalink)  
Старый 21.02.2018, 19:15
BNB BNB вне форума
Интересующийся
Отправить личное сообщение для BNB Посмотреть профиль Найти все сообщения от BNB
 
Регистрация: 09.02.2018
Сообщений: 27

Задача про img и события load/error
Есть задача: 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?
Ответить с цитированием