簡體   English   中英

Javascript 去抖回調 Function 與動態 Arguments

[英]Javascript Debounce Callback Function with Dynamic Arguments

所以對於一個功能,我必須使用 javascript debounce function,它看起來像這樣:

$.debounce = function (func, wait, immediate) {
    var timeout;
    return function() {
      var context = this, args = arguments;
      var later = function() {
        timeout = null;
        if (!immediate) func.apply(context, args);
      };
      var callNow = immediate && !timeout;
      clearTimeout(timeout);
      timeout = setTimeout(later, wait);
      if (callNow) {
        func.apply(context, args);
      }
    };
  };

我是回調函數的新手,剛剛意識到,這個 function 返回一個我可以調用的 function。 但我不能直接調用它。 但是,我想要動態 arguments,而不是每次都創建一個新變量 function object。

所以例如我想打電話給我的 function

function print_something(){
// prints something
}

我會這樣做:

var print_debounce = $.debounce(print_something, 100);

And then I can use 

print_debounce();

但我想讓 print_debounce 更有活力。

例如(不起作用)

var function_debounce = $.debounce(func, wait);

function_debounce(print_something, 100);

有沒有辦法做到這一點?

謝謝!

我找到了一種方法,但它不是很具體,而且可能比它應該的更復雜。

var debounce_function = function (func, wait, immediate) { return $.debounce(func, wait, immediate); };

debounce_function(print_something, 1000, false).call();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM