debounce :如果在一段延时内又触发了事件,则重新开始延时。即每次触发事件,只触发最近一次的事件。
const debounce = (fn, duration) => { let timer = null; return () => { clearTimeout(timer); timer = setTimeout(() => { fn(); },duration); } }