将参数作为参数传递时,将其添加到函数引用

时间:2018-07-13 18:11:24

标签: javascript

我正在处理一个回调链式项目,我发现可以通过创建一个匿名函数轻松解决这一点。

这是我的代码:

let firstValue = 3;
let secondValue = 4;
setInterval(() => { 
    sumTheValues(firstValue, secondValue);
}, 10);

我想做的是在10毫秒的间隔后用sumTheValuesfirstValue执行secondValue

我知道在某些情况下,您可以使用.bind,因此函数内的this将具有您变量的值,但这对我不起作用。 就像我说的那样,可以通过传递匿名函数的引用来轻松解决它,但是我想知道Javascript是否可以在本地为该回调添加参数。

1 个答案:

答案 0 :(得分:0)

您可以将参数传递给Contract,该参数将传递给您的回调:

NextDueDate

请参见MDN documentation


但是,这样做和使用闭包(就像您在问题中所做的那样)之间是有区别的:

  • 将参数直接传递到setInterval时,值/变量只计算一次,因此setInterval(sumTheValues, 10, firstValue, secondValue); 将始终接收相同的值。
  • 使用闭包时,每次调用函数时都会重新评估setIntervalsumTheValues,因此,如果同时更改它们的值,则firstValue将获得不同的值。 / li>