Я пытаюсь понять две вещи об этом коде:
var updateFn = function(num){
return function(){
if(num == 6){
console.info("100%, all items saved!")
}
else{
var i = num/6;
var pct = Math.round(100 * i);
console.info(pct + "% saved");
}
};
};
for (var i = 1; i < 7; i++){
setTimeout(updateFn(i), i * 500);
}
-
В соответствии с тем, что я прочитал о синтаксисе setTimeout();
setTimeout("javascriptstatement",milliseconds);
Итак, зачем мне увеличивать миллисекунды каждого цикла до полного времени до 500 * 6 мс? Почему
setTimeout(updateFn(i), 500);
работает так, как предполагалось? -
Почему мне нужно вернуть функцию для функции, переданной в качестве первого параметра SetTimeout?
Почему это не работает?:
var updateFn = function(num){ if(num == 6){ console.info("100%, all items saved!") } else{ var i = num/6; var pct = Math.round(100 * i); console.info(pct + "% saved"); } }; for (var i = 1; i < 7; i++){ setTimeout("updateFn(i)", i * 500); }
Спасибо заранее.