簡體   English   中英

下划線與爭論的辯論

[英]Underscore debounce with arguments

假設我有這個事件處理程序:

var mousewheel = function (e) { /* blah */ };

但是,我想辯論它。 所以我這樣做,按預期工作:

var mousewheelDebounced = _.debounce(mousewheel, 500);
$(document).on("mousewheel", function (e) {
  e.preventDefault();
  mousewheelDebounced(e);
}

但這不能按預期工作

$(document).on("mousewheel", function (e) {
  e.preventDefault();
  _.debounce(mousewheel, 500)(e);
}

我更喜歡第二種形式的緊湊性。 但是沒有發生去抖動。

我假設沒有引用mousewheelDebounced ,所以每次調用底層處理程序。 這是什么原因? 如果可能,我該如何清理此代碼?

你可以在這里看到一個小提琴

在每個mousewheel事件(經常發生)上,您將創建一個新版本的debounce功能。 此函數沒有歷史記錄,並且不知道在之前的事件中還創建了另一個。 所以它只是運行。 這就是你應該使用第一個版本的原因。

暫無
暫無

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

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