本文主要是介绍js 手写防抖,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 如果存在之前的计时器,取消重新计时。 即多次点击只执行最后一次
- 注意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>
这篇关于js 手写防抖的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!