用参数下划线来解密函数



我有一个函数,它接受一些参数。但是下划线debounce的用法是:

var lazyLayout = _.debounce(calculateLayout, 300);

但是在我的例子中,calculateLayout需要一些参数来运行。在这种情况下我怎样才能通过考试呢?

更新:

示例calculateLayout函数:

var calculateLayout = function(a,b) {
  console.log('a is ' + a + ' and b is ' + b);
}

您不需要在中间使用匿名函数,参数将在运行已删除版本时自动传递给原始函数。

  var debounceCalculate = _.debounce(calculateLayout, 300);
  debounceCalculate(a,b);

作为一个优点,您不必预先硬编码绑定参数

你可以尝试一下,如果你好奇的话,可以查看源代码

您应该能够使用匿名函数作为第一个参数,然后在其中调用您喜欢的任何内容:

_.debounce(function(){
    calculateLayout(20, 30);
}, 300);

@Jamie的答案更好。

我将保留我原来的答案如下,尽管如果你熟悉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);

由于没有人编写没有额外varfunction的一行,我将自己编写:

_.debounce(calculateLayout, 300)(a, b);

Debounce function返回另一个函数,因此您可以在执行Debounce之后调用它。

最新更新