写一个javascript防抖函数
防抖函数是一种可以防止短时间内重复触发函数的方法。其原理是在函数触发后设定一个定时器,如果在定时器时间范围内再次触发函数,则清除定时器,重新设定一个新的定时器,以此类推,直到定时器时间范围内没有再次触发函数,最终执行一次函数。
下面是一个简单的javascript防抖函数实现:
function debounce(func, wait) {
let timer = null;
return function() {
const context = this;
const args = arguments;
clearTimeout(timer);
timer = setTimeout(function() {
func.apply(context, args);
}, wait);
}
}
这个防抖函数接受两个参数,第一个参数是要执行的函数,第二个参数是定时器的时间范围。函数内部使用了闭包来保存定时器的变量,每次执行时先清除之前的定时器,再设定一个新的定时器。最后通过apply方法调用原函数,传递原函数的上下文和参数。
原文地址: https://www.cveoy.top/t/topic/tz0 著作权归作者所有。请勿转载和采集!