JavaScript 防抖代码
时间:2023-3-10 11:42 作者:wen 分类: F2E
防抖 (debounce) 是一种常见的 JavaScript 技巧,用于限制函数在一定时间内被频繁调用的情况。下面是一个简单的防抖函数示例:
function debounce(func, delay) {
let timeoutId;
return function() {
clearTimeout(timeoutId);
timeoutId = setTimeout(() => {
func.apply(this, arguments);
}, delay);
};
}
这个函数接受两个参数:
- func: 要执行的函数。
- delay: 延迟时间,即防抖的时间间隔。
函数返回一个新函数,这个函数会在被调用 delay 毫秒之后才会执行 func。如果在这个时间间隔内再次调用该函数,那么之前的调用就会被取消,只有最后一次调用才会被执行。例如:
function doSomething() {
console.log('Doing something...');
}
const debounced = debounce(doSomething, 1000);
debounced(); // 等待 1000 毫秒后打印 "Doing something..."
debounced(); // 取消之前的调用,等待 1000 毫秒后打印 "Doing something..."
debounced(); // 取消之前的调用,等待 1000 毫秒后打印 "Doing something..."
这个防抖函数非常简单,但可以很好地解决某些场景下频繁调用函数的问题,比如输入框输入事件、窗口 resize 事件等。
标签: javascript