防抖代码示例
时间: 2023-07-02 22:06:28 浏览: 111
防抖函数可以用来限制函数被频繁调用的情况,比如在输入框输入时,只有停止输入一段时间后才会触发查询操作。下面是一个简单的防抖函数示例:
```javascript
function debounce(func, delay) {
let timerId;
return function() {
const context = this;
const args = arguments;
clearTimeout(timerId);
timerId = setTimeout(() => {
func.apply(context, args);
}, delay);
}
}
```
使用方法:
```javascript
function search(query) {
console.log(`searching for ${query}`);
}
const debouncedSearch = debounce(search, 500);
// 调用 debounce 返回的函数
debouncedSearch('JavaScript');
debouncedSearch('React');
debouncedSearch('Vue');
```
这段代码中,`debounce` 函数接受两个参数,第一个是要执行的函数,第二个是防抖的时间间隔。它返回一个新的函数,这个函数会在调用时延迟一段时间后再执行传入的函数。如果在这个延迟时间内再次调用这个新函数,就会取消之前的延迟,重新计时。这样就可以保证函数不会被频繁执行。
阅读全文