前端防抖怎么写
时间: 2023-10-01 14:04:32 浏览: 67
防抖是指在一定时间内,多次触发同一个事件,只执行最后一次操作,可以用于减少一些频繁的操作,比如搜索框自动提示、滚动加载等场景。
前端防抖可以通过定时器来实现,具体实现如下:
```javascript
function debounce(func, delay) {
let timer = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(() => {
func.apply(context, args);
}, delay);
}
}
```
其中,`func` 是需要防抖的函数,`delay` 是设定的防抖时间间隔。该函数返回一个新的函数,该函数内部通过 `setTimeout` 来实现定时器,同时通过 `apply` 方法来将函数执行的上下文和参数传递给原函数。
使用方法如下:
```javascript
const debounceFunc = debounce(() => {
console.log('debounce');
}, 1000);
debounceFunc(); // 没有输出
debounceFunc(); // 没有输出
debounceFunc(); // 在 1000ms 后输出 "debounce"
```
在实际开发中,可以将防抖函数封装成一个通用的工具函数,以便多个地方使用。
阅读全文