(作者笔记自用)
function debounce(fn, timeout){
timeout = timeout || 1000;
let timer;
return () => {
if(timer){
clearTimeout(timer);
}
timer = setTimeout(() => {
fn();
}, timeout);
}
}
function print() {
console.log('print');
}
window.addEventListener('mousemove', debounce(print, 1000), false);
用处:在频繁调用函数,但是我们只想要调用其最后一次的时候,只要每一次的事件触发时间间隔小于设置的timeout值,那么就一直不会触发fn函数,如以上函数,如果你在网页中一直移动鼠标,那么fn函数,即print函数就一直不会触发。