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

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

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

alert( m[2]() );


почему массив хранит значения последней итерации цикла?
  • Вопрос задан
  • 213 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 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]() );
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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