setTimeout в цикле for не печатает последовательные значения [дубликат]

На этот вопрос уже есть ответ:

У меня есть этот сценарий:

for (var i = 1; i <= 2; i++) {
    setTimeout(function() { alert(i) }, 100);
}

Но 3 выдается оба раза, вместо 1 , затем 2 .

Есть ли способ передать i без записи функции в виде строки?

254
задан royhowie 1 May 2015 в 17:54
поделиться