Задать вопрос
1PeGaS
@1PeGaS

Почему функция не сохраняет предыдущие значения?

var m = [];
for (var j = 0; j < 10; j++) {
  m[j] = function() {
    return j;
  }
}

alert( m[2]() );


почему массив хранит значения последней итерации цикла?
  • Вопрос задан
  • 220 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
@abberati
frontend-разработчик
Почему задачи из учебников появляются на сервисах решения проблем?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Для сохранения промежуточных значений можно сделать замыкание:
var m = [];
for (var j = 0; j < 10; j++) {
  m[j] = (function() {
    return this;
  }).bind(j);
}

alert( m[2]() );
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы