帮我用js写一个防抖函数
防抖函数的作用是在持续触发事件时,只执行一次处理函数,以提高性能和避免重复操作。
以下是一个简单的防抖函数的代码实现:
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);
};
}
这个函数接受两个参数:
func: 要执行的函数delay: 防抖的时间间隔,单位毫秒
在函数内部,我们创建了一个 timer 变量,用于存储定时器的 ID。在每次函数调用时,我们清除之前的定时器,然后创建一个新的定时器,等待指定时间后执行函数。如果在指定时间内再次调用函数,就会清除之前的定时器并创建一个新的定时器,保证只有最后一次操作会执行函数。
使用方式如下:
function myFunction() {
// 执行的函数体
}
// 创建一个防抖函数
const debouncedFunction = debounce(myFunction, 500);
// 在需要防抖的事件上调用防抖函数
element.addEventListener('input', debouncedFunction);
原文地址: https://www.cveoy.top/t/topic/Yti 著作权归作者所有。请勿转载和采集!