JavaScript反跳功能

时间:2018-07-03 15:01:34

标签: javascript function dom debounce

我建立了一个JavaScript反跳函数,如果这是正确的方法,那么我需要JavaScript专家的意见,如果不是,那么当前函数的缺点是什么。预先感谢您的意见,这将有助于我学习。

var debounce = function(inpFun, wait) {
    var timeout;
    return function () {
        if(!timeout) {
            inpFun.apply(this, arguments);
            timeout = setTimeout(function() {
                timeout = undefined;
            }, wait);
        }
        else {
            console.log("Debouncing");
        }
    }
};

var buttonClickFunction = debounce(function (event) {
    console.log("Button Clicked");
    console.log(event.target.id);
}, 2000);



document.querySelector("#button1").addEventListener("click", buttonClickFunction);
<button id="button1">Button</button>

1 个答案:

答案 0 :(得分:-1)

在我看来,在这种情况下最有用的事情就是看专家的所作所为。因此,lodash和下划线都提供了去抖动的实现,您可以这样找到它们:

  1. 文档:https://lodash.com/docs/4.17.10#debounce
  2. 代码:https://github.com/lodash/lodash/blob/master/debounce.js

如果您想深入了解此类代码,请阅读该文件的提交历史记录,并在第一个链接中阅读有关节气门和反跳之间的区别的博客文章,并且一般来说,您可以从其他内容中吸取最大的精力挣扎着。