请有人告诉我,下面的setInterval方法有什么区别。将setInterval中的函数作为参数传递的最佳方法是什么。
{{1}}
答案 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)
没有差异。
从性能持续第二种方法更好,因为你不创建一个无穷大的功能,但只使用参考。在第一种情况下,您将创建两次函数以获得相同的结果。