目的:避免 setInterval
因执行时间导致的间隔执行时间不一致。
arguments.callee
setTimeout(function () {
console.log(new Date())
setTimeout(arguments.callee, 1000)
}, 0)
注意:
argument
已经从 Web 标准中删除,并且在严格模式('use strict'
)下,不能使用arguments.callee
。
递归 + setTimeout()
function infinite() {
console.log(new Date())
return setTimeout(infinite, 1000)
}
infinite()