setTimeout()
setTimeout
函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。
let timerId = setTimeout(func|code, delay);
* 第一个参数func|code是将要推迟执行的函数名或一段代码
* 第二个参数delay是推迟执行的毫秒数,如果省略,则默认为0
* 还可以有更多的参数,但第三个参数开始将作为回调函数的参数
function fun() {
console.log("我是一只酸菜鱼");
}
setTimeout(fun, 1000);
- 如果回调函数是对象的方法,那么setTimeout使得方法内部的this关键字指向全局环境,而不是定义时所在的那个对象
var po = "外部";
let obj = {
po: "内部",
method: function() {
console.log(this.po + "position");
}
};
setTimeout(obj.method, 1000); // 外部position
* 解决上面问题的方法:
//obj.y放在一个匿名函数之中,这使得obj.y在obj的作用域执行,而不是在全局作用域内执行,所以能够显示正确的值
let po = "外部";
let obj = {
po: "内部",
method: function() {
console.log(this.po + "position");
}
};
setTimeout(function() {
obj.method()