请有人告诉我,下面的setInterval方法有什么区别。将setInterval中的函数作为参数传递的最佳方式是什么?setInterval参数之间的区别
function red_on(){
$('#red_light').css('opacity', 1);
}
setInterval(function() {
red_on();
}, 4000);
setInterval(red_on, 4000);
请有人告诉我,下面的setInterval方法有什么区别。将setInterval中的函数作为参数传递的最佳方式是什么?setInterval参数之间的区别
function red_on(){
$('#red_light').css('opacity', 1);
}
setInterval(function() {
red_on();
}, 4000);
setInterval(red_on, 4000);
最后的方法是最好的。
基本上在第一方法,则需要(red_on())匿名函数的内部执行功能。你有两个功能。
由于setInterval的走功能作为第一个参数,你可以只传递你想不创建匿名函数来执行该功能。
如果你想做red_on()
和别的东西(如console.log),那么第一种方法更好。
TL; DR没有大的区别。
第二种方法是正确的在这种情况下。我会把它形容为人。如果您想在第二种方法中与名为Red_on的人交谈,则您直接与Red_on交谈。您仍然与Red_on交谈的第一种方法是,您可以使用匿名功能或其他人与他们交谈。因此,虽然红色仍然收到您的消息,你只是在一个匿名函数中添加另一个步骤。
没有区别。
从性能持续性的角度来看,第二种方法更好,因为您不会创建一致函数,而仅使用参考。在第一种情况下,您将创建两次函数以实现相同的结果。
当您需要将某些参数传递给该函数时,您可以使用第一种方法,否则第二种方法更简单易读。
例:
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);
我希望它可以帮助你。再见。