#settimeout #javascript #замыкания #циклы #функции
for (j=1;j<=5;j ++)
{
(function(i){
setTimeout(function(){console.log(i)}, j*500)
})(j)
}
Интересует конкретно данный кусок кода, почему задержка не увеличивается на 500 мс?
Был бы благодарен если кто нибудь описал принцип работы функции.
Ответы
Ответ 1
Вы по сути одновременно запускаете пять функций, т.е. ваш код идентичен: (function(i){setTimeout(function(){console.log(i)}, 1*500)})(1) (function(i){setTimeout(function(){console.log(i)}, 2*500)})(2) (function(i){setTimeout(function(){console.log(i)}, 3*500)})(3) (function(i){setTimeout(function(){console.log(i)}, 4*500)})(4) (function(i){setTimeout(function(){console.log(i)}, 5*500)})(5) Что приводит к эффекту вывода пяти сообщений в консоль с интервалом 500 миллисекунд.
Комментариев нет:
Отправить комментарий