[英]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.