定时器 用于在设定的时间执行一段代码,或者在给定的时间间隔内重复该代码。
通过使用函数setTimeout,setInterval和clearInterval来完成。
setTimeout(function,delay)函数用于 给定时间后开始执行该函数。
setInterval(function,delay)函数用于 使用给定时间的频率去执行函数。
clearInterval(id)函数指示定时器停止。就是setInterval调用时返回一个id,可以使用此id关闭定时器
1、 在setInterval和setTimeout中传入函数时,函数中的this会指向window对象。
在某个对象的方法内部,有一个方法,方法的内部是这样的
setTimeout( function(){console.log(this);}, 1000 )
此时的this指向的就是window而不是方法所属的对象。
2、 但是在setTimeout中传入的不是函数时,this则指向当前对象。
在某个对象的方法内部,有一个方法,对象本书有一个变量num setTimeout(console.log(this.num), 1000)
当在setTimeout中传入了一个函数,若想要让this指向正确的值,可以使用以下 两种比较常用的方法来使this指向正确的值:
1.这种方法是将当前对象(this)的引用放在一个变量里,定时器内部的函数 来访问到这个变量,自然就可以得到当前的对象。
function Obj (){
var that = this; //将this存为一个变量,此时的this指向obj
this.num = 1,
this.getNumLater = function(){
setTimeout(function(){
console.log(that.num); //利用闭包访问that,that是一个指向obj的指针
}, 1000)
}
}
2.利用bind()方法
setTimeout(function(){
console.log(this.num);
}.bind(this), 1000) //利用bind()将this绑定到这个函数上
}
声音简介
用户评论
表情0/300
音频列表
- 2018-10
- 2018-10
- 2018-10
- 2018-10
- 2018-10
- 2018-10
- 2018-10
- 2018-10
- 2018-10
- 2018-10
查看更多
championYang
厉害了