实现思路
在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
代码实现
export function fandou(callback = function() {}, timeout = 300) {
let timer = null;
return function() {
const arg = arguments;
const context = this;
clearTimeout(timer);
timer = setTimeout(() => {
callback.apply(context, arg)
}, timeout);
}
}