日期:2014-05-16 浏览次数:20379 次
由于 JavaScript 是异步的,可以使用? 注意:?定时处理不是?ECMAScript 的标准,它们在?DOM (文档对象模型)?被实现。 当? 基于 JavaScript 引擎的计时策略,以及本质上的单线程运行方式,所以其它代码的运行可能会阻塞此线程。 作为第一个参数的函数将会在全局作用域中执行,因此函数内的? 注意:?
setTimeout
?和?setInterval
setTimeout
?和?setInterval
?来计划执行函数。
function foo() {}
var id = setTimeout(foo, 1000); // 返回一个大于零的数字
setTimeout
?被调用时,它会返回一个 ID 标识并且计划在将来大约?1000 毫秒后调用?foo
?函数。foo
?函数只会被执行一次。
因此没法确保函数会在?setTimeout
?指定的时刻被调用。this
?将会指向这个全局对象。function Foo() {
this.value = 42;
this.method = function() {
// this 指向全局对象
console.log(this.value); // 输出:undefined
};
setTimeout(this.method, 500);
}
new Foo();
setTimeout
?的第一个参数是函数对象,一个常犯的错误是这样的?setTimeout(foo(), 1000)
,
这里回调函数是?foo
?的返回值,而不是<