Gan*_*row 57 javascript underscore.js
我有一个函数,它接受了一些参数.但是下划线去抖的用法是:
var lazyLayout = _.debounce(calculateLayout, 300);
Run Code Online (Sandbox Code Playgroud)
但在我的情况下calculateLayout
需要一些参数来运行.在这种情况下如何通过它们?
更新:
示例calculateLayout
功能:
var calculateLayout = function(a,b) {
console.log('a is ' + a + ' and b is ' + b);
}
Run Code Online (Sandbox Code Playgroud)
Jai*_*udo 222
您不需要中间的匿名函数,当您运行去抖动版本时,参数将自动传递给原始函数.
var debounceCalculate = _.debounce(calculateLayout, 300);
debounceCalculate(a,b);
Run Code Online (Sandbox Code Playgroud)
作为优势,您不必事先对参数进行硬编码绑定
你可以尝试一下,如果好奇,只需查看来源
Max*_*ens 28
您应该只能使用匿名函数作为第一个参数,然后在其中调用您喜欢的任何内容:
_.debounce(function(){
calculateLayout(20, 30);
}, 300);
Run Code Online (Sandbox Code Playgroud)
@杰米的答案更好.
我将保留原来的答案如下,尽管如果你熟悉JS,最好使用Jamie的答案:
var calculateLayout = function(a,b) {
console.log('a is ' + a + ' and b is ' + b);
}
var debounceCalculate = _.debounce(function(a, b){
calculateLayout(a, b);
}, 300);
debounceCalculate(1, 2);
Run Code Online (Sandbox Code Playgroud)