Замыкания... почему alert "глючит" ?
Есть 2 фрагмента, каждый из которых через 3 секунды выводит i (от 1 до 10). Но вот почему-то во втором (с alert) порядок нарушен. console.log выводит всё правильно (от 1 до 10.) Почему?
1. for (var i = 1; i <= 10; i++) { (function(e) { setTimeout(function() { console.log(e); }, 3000); })(i); } 2. for (var i = 1; i <= 10; i++) { (function(e) { setTimeout(function() { alert(e); }, 3000); })(i); } |
Keramet,
потому что у вас долгая реакция на кнопку ок, а у Google Chrome мания всё оптимизировать, так как он считает нужным. |
рони, т.е. на других броузерах alert выдаст всё по порядку?
|
Keramet,
да |
Keramet,
уберите for и всё будет по порядку везде и без замыканий :) |
Цитата:
|
Keramet,
одна функция с условием запуска без циклов |
Keramet,
var i = 0; (function fn() { i && alert(i); i++; i < 11 && setTimeout(fn, 3000); })(); |
Цитата:
. Почему нельзя просто alert(i); ? (чтобы ноль не выводить?) |
Keramet,
чтобы первый алерт был не сразу а через 3 секунды |
Часовой пояс GMT +3, время: 06:18. |