【发布时间】:2016-10-10 05:42:26
【问题描述】:
我已经阅读了关于 w3schools 的相关页面和其他类似问题,但似乎无法理解以下内容有什么问题:
var myfunc03 = function (i) {
document.getElementById('d01').innerHTML += 100-i+"<br>";
};
var myFunc01 = function() {
i=0;
while (i<100) {
setTimeout(myfunc03(i), 1000)
i++;
}
};
当myFunc01(); 运行时。
没有任何停顿,i 的所有可能值都会立即列出。
这里有逻辑错误吗?
【问题讨论】:
-
这当然突出了他的第二个错误——从闭包中访问修改后的变量 (
i)。当超时触发时,i将更改为最后一个。 -
setTimeout期望Function作为第一个参数,但您传递的是myfunc03的 result (这是underfined,因为您正在调用它)
标签: javascript while-loop settimeout