防抖
在一定时间内执行一次,如果在此时间内再次触发,则重新计时
const debounce = (func, timeout, immediate = false) => {
let timer = null;
return function (...args) {
if (!timer && immediate) {
func.apply(this, args);
}
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
func.apply(this, args);
}, timeout);
}
}
节流
在一定时间内执行一次,如果在此时间内再次触发,则会拦截不执行
const throttle = (func, timeout) => {
let timer = null;
return function (...args) {
if (!timer) {
timer = setTimeout(() => {
timer = null;
func.apply(this, args);
}, timeout);
}
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。