// 防抖就是,事件触发 delay 秒后再执行,如果有重新的触发,重新计时
function debounce(func, delay) {
if(typeof func !== 'function') {
return
}
let timer = 0
return function () {
if (timer) {
clearTimeout(timer)
timer = null
}
timer = setTimeout(() => {
func.apply(this, arguments)
}, delay);
}
}
function setName(name) {
console.log('防抖', name)
}
const debounceSetName = debounce(setName, 100)
debounceSetName('1')
setTimeout(() => {
debounceSetName('2')
}, 100);
setTimeout(() => {
debounceSetName('3')
}, 200);
实现防抖函数
最新推荐文章于 2024-06-25 01:37:55 发布