以很高的频率触发防抖函数,刚开始控制台不会输出内容,防抖函数是生效的,持续短暂的时间后就会发现控制台一直在输出内容,就是说明防抖函数在这个情况下失效了,请问是为什么
```javascript
var btn = document.getElementById('btn');
function debounce (fn, delay) {
let timer = null
return function () {
// 在规定时间内再次触发会先清除定时器后再重设定时器
// console.log(timer)
clearTimeout(timer);
timer = setTimeout(function () {
// console.log(this, timer)
fn.apply(this, arguments);
}, delay);
}
}
function fn () {
console.log('防抖')
}
// 就是这一行
btn.onclick = function () {
debounce(fn, 3000)()
}
```