6,手写节流函数
函数节流是指在规定的一个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只能有一次生效,节流可以使用在scroll函数的事件监听上面,通过事件节流来减低事件调用的频率。
<script>
function throttle(fn,delay){
let curTime = Date.now()
return function(){
let context = this,args = arguments,nowTime = Date.now();
// 如果两次时间间隔超过了指定时间,则要执行函数
if(nowTime-curTime >= delay){
curTime = Date.now()
return fn.apply(context,args) // 改变this的指向,让其指向调用函数的对象
}
}
}
</script>