// 相当于把要执行的函数体传入到debounce里面换出来一个带延时的函数
function debounce(fn, theTime) { //参数1:是真正要执行的那个函数体,参数2:等待时间
return function () { // 此函数作为事件处理函数 - 事件触发这个函数会被频繁调用
clearTimeout(fn.timer); // 清空上一次的定时器
fn.timer = setTimeout(() => { // 新的定时器(时间重新倒计时)
// 再给fn.timer新的定时器(时间就会重新倒计时)
fn.call(this, ...arguments); // fn.call作用:(1)调用fn函数执行(2)本次调用改变fn内this的指向(3)给fn传参 (arguments是外层函数上的形参(里面会有事件对象))
}, theTime);
};
}
封装的防抖函数
最新推荐文章于 2024-04-29 21:11:09 发布