js防抖函数
时间: 2023-07-08 20:04:19 浏览: 108
防抖函数可以避免在短时间内频繁触发某个函数,从而提高网页性能。下面是一个简单的 JavaScript 防抖函数的实现:
```javascript
function debounce(func, delay) {
let timer = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(function() {
func.apply(context, args);
}, delay);
};
}
```
这个函数接受两个参数:要执行的函数和等待时间。当该函数被调用时,它会设置一个定时器,如果在等待时间内再次调用该函数,则会清除之前的定时器并重新设置一个新的定时器。当定时器到期后,函数会被执行。
使用方法如下:
```javascript
const myFunc = () => {
console.log('Debounced function called');
};
const debouncedFunc = debounce(myFunc, 500);
debouncedFunc(); // 函数不会立即执行
debouncedFunc(); // 在等待时间内再次调用函数,会清除之前的定时器并重新设置一个新的定时器
// 等待 500 毫秒后,函数才会被执行
```
注意:这个函数返回的是一个新函数,因此需要将其保存在变量中再进行调用。
阅读全文