Aşağıdaki kodun parantezler dahil edildiğinde neden taşmasıyla sonuçlandığı konusunda kafamı kaydırmaya çalışıyorum ancak atlanmadıklarında bunu yapmam.Bir işlevi argüman olarak geçirirken neden parantez atmalıyım?
Ayarın kendisini setTimeout için bir argüman olarak çağırıyorum ve parantez olmadan çalışıyor, ancak eklediğimde elbette başarısız oluyor. Fonksiyondan sonra() eklemek benim sezgisimdi. Umarım birileri bunu benim için temizleyebilir. Paraleller ne zaman isteğe bağlı ve değil?
DURUM 1:
var a = 1;
function foo() {
a++;
document.write(a);
setTimeout(foo(), 2000)
}
// RangeError: Maximum call stack size exceeded
DURUM 2:
var a = 1;
function foo() {
a++;
document.write(a);
setTimeout(foo, 2000)
}
// parens are omitted on foo function and it works.
Muhtemelen bir çift. Bu yardımcı olmalıdır: http://stackoverflow.com/questions/5520155/settimeout-callback-argument/5520190#5520190 –
teşekkür ederim çok lwburk, bu bağlantıdaki açıklamanız benim için temizlenmiş şeyler. –