Я новичок в Javascript и пытаюсь перебрать массив внутри цикла for с setTimeout
, это часть кода, поэтому по умолчанию у меня есть 100 мс. Я ожидаю, что результат будет 1,2,3, но вся его печать не определена 3 раза. если кто-то может помочь мне объяснить, почему это будет полезно.Переменная переменной Javascript с IIFE
var allCars=['Car1','Car2','Car3'];
for(var i = 0; i < allCars.length; i++)
{
(function(temp){
setTimeout(function(temp){
console.log(allCars[temp]);
},100)})(i);
}
'setTimeout' не проходят никаких аргументов в функции обратного вызова. Поскольку вы объявили обратный вызов с параметром 'temp',' temp' будет 'undefined'. Если вы ожидаете, что 'temp' будет ссылаться на внешний параметр вашего IIFE, как вы ожидали, что JavaScript будет знать, какой из них выбрать? –