Javascript

js 手写防抖

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