实现一个防抖函数
//在规定时间内触发第二次,则执行
//业务代码
function fn() {
console.log("=============");
}
//设置鼠标事件 调用防抖函数
document.onmousemove = debounce(fn, 1000)
function debounce(fn, delay) {
//利用闭包保存定时器
let timer = null
return function() {
//在规定时间内再次触发会先清除定时器后再重设定时器
clearTimeout(timer)
timer = setTimeout(function() {
fn.apply(this, arguments[0])
//apply改变this指向,arguments[0] 触发业务代码(鼠标事件)
}, delay)
}
}