for (var i = 1; i <= 5; i++) {
(function(j) {
setTimeout(function timer() {
console.log(j)
}, j * 1000)
})(i)
}
这里之所以j*1000,是因程序执行上是1s 2s 3s 。。。
这样页面上表现出来的效果才会是 每隔一秒输出。
如果只有
for (var i = 1; i <= 5; i++) {
(function(j) {
setTimeout(function timer() {
console.log(j)
}, 1000)
})(i)
}
则会在1s后输出12345 全部的数字。
究其原因,还是for循环执行很快。