Вопрос проверяет понимание блочной области видимости и работы замыканий в циклах.
Короткий ответ
let в цикле создает новую переменную на каждую итерацию. Поэтому каждое замыкание “запоминает” свое значение. В отличие от var, где используется одна общая переменная на весь цикл, let предотвращает типичную ошибку с одинаковыми значениями. Это поведение заложено в спецификацию языка.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.