Показать сообщение отдельно
  #5 (permalink)  
Старый 02.09.2019, 10:12
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 457

Сообщение от Devero97
Есть код:
И он неправильный, правильно так:
for(var i = 0; i <= 5; i++){
    setTimeout(function() { console.log(i) }, i * 1000);
}

Сообщение от Devero97
А как тайм-аут запомнил, что там были числа 0,1 и т.д.?
Тайм-аут ничего не запоминает, запоминает функция, которая создана и передана ему аргументом function() { console.log(i) }. Функции запоминают переменные окружения в месте своего создания, а не в месте своего вызова. Тайм-аут когда-то потом ее вызовет, но это уже не важно.

Последний раз редактировалось Rise, 02.09.2019 в 10:16.
Ответить с цитированием