請有人告訴我,下面的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);
我希望它可以幫助你。再見。