1.节流函数封装
function throttle(cb, time = 300) { //延迟时间参数可选,默认为300ms
let timer = null;
return function (e) { //真正的事件处理函数
if (timer) return;
timer = setTimeout(() => {
//cb是普通函数 this指向为window 需要修改this指向
cb.call(this, e);
timer = null;
}, time)
}
}
//示例
document.onscroll = throttle(function () {
console.log(111111);
}, 1000)
2.防抖函数封装
function fn(cb, time = 300) {
let timer = null;
return function (e) {
clearTimeout(timer);
timer = setTimeout(() => {
cb.call(this, e);
}, time)
}
}
//示例
document.onclick = fn(function () {
console.log(1111);
})
版权声明:本文为Lyon__Lee原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。