【发布时间】:2021-04-30 23:04:53
【问题描述】:
所以对于一个特性,我必须使用 javascript debounce 函数,它看起来像这样:
$.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 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 print_debounce();是什么?您可以使用任意数量的参数调用function_debounce -
对不起,它只是 print_debounce();
-
我无法使用我选择的参数调用 function_debounce。是否有不同的方法来实现我的 function_debounce,以便它可以使用任意数量/值的参数?
-
你可以拨打
print_debounce(100)就好了。 -
但是我在创建
var print_debounce = $.debounce(print_something, 100);的时候已经给出了具体的参数,那我怎么用不同的来调用呢。
标签: javascript callback debounce