setInterval参数之间的区别

时间:2017-02-20 15:25:41

标签: jquery parameters intervals

请有人告诉我,下面的setInterval方法有什么区别。将setInterval中的函数作为参数传递的最佳方法是什么。

{{1}}

4 个答案:

答案 0 :(得分:2)

当你需要将一些参数传递给函数时,你可以使用第一种方法,否则第二种方法更简单易读。

例如:

function red_on(opacity){
   $('#red_light').css('opacity', opacity);
}

setInterval(function () {
   red_on(1);
}, 4000);

setInterval(red_on, 4000); <-- Here you cannot pass parameters

请参阅以下代码段:

function test(par1){
  console.log(par1);
}

setInterval(function () {
   test("message every 4 seconds");
}, 4000);

setInterval(test("message2: called just one time!"), 4000);

我希望它可以帮到你。再见。

答案 1 :(得分:1)

最后一种方法是最好的。

基本上在第一种方法中,您正在匿名函数内执行函数(red_on())。你有两个功能。

由于setInterval将函数作为第一个参数,因此您只需传递要执行的函数,而无需创建匿名函数。

如果您想要red_on() 其他内容(例如console.log),那么第一种方法会更好。

TL; DR没有太大区别。

答案 2 :(得分:0)

在这种情况下,第二种方法是正确的。我会把它形容为人。如果您想在第二种方法中与名为Red_on的人交谈,您将直接与Red_on交谈。第一种方法是你还在和Red_on谈话,但是你会使用匿名函数或其他人与他们交谈。因此,虽然Red仍在收到您的消息,但您只是在匿名函数中添加了另一个步骤。

答案 3 :(得分:0)

没有差异。

从性能持续第二种方法更好,因为你不创建一个无穷大的功能,但只使用参考。在第一种情况下,您将创建两次函数以获得相同的结果。