- 如果存在之前的计时器,取消重新计时。 即多次点击只执行最后一次
- 注意this指向和回调形参列表
<button onclick="clickMe(1)">点我</button>
<script>
const clickMe = debounce((a) => {
console.log(a);
}, 500)
function debounce(fn, timeout) {
let timer = null
return function () {
let context = this
let args = Array.prototype.slice.call(arguments)
if (timer) {
clearTimeout(timer)
timer = null
}
timer = setTimeout(() => {
fn.apply(context,args)
}, timeout);
}
}
</script>
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/267738.html