Bila Menggunakan Tanda Kurung dalam Panggilan Fungsi
Apabila meneliti kod berikut:
var myFunction = function() { setTimeout(myFunction, 1000); } myFunction();
Seseorang mungkin tertanya-tanya mengapa panggilan fungsi dalam setTimeout tidak memerlukan kurungan manakala seruan fungsi bebas tidak.
Memahami Perbezaan
Argumen Fungsi Tamat Masa
setTimeout mengambil rujukan fungsi sebagai salah satu hujahnya. Dalam kod yang diberikan, myFunction dirujuk sebagai fungsi panggil balik.
Kurungan dalam Argumen Tamat Masa
Memasukkan kurungan dalam setTimeout(myFunction(), 1000) boleh menyebabkan akibat yang tidak diingini jika myFunction mengembalikan fungsi (cth., menggunakan fungsi anak panah). Dalam kes sedemikian, setTimeout akan menerima nilai pulangan myFunction dan bukannya rujukan fungsi itu sendiri. Ini boleh membawa kepada pelaksanaan fungsi berulang atau tingkah laku yang tidak dijangka.
Oleh itu, apabila menggunakan setTimeout atau kaedah serupa yang mengharapkan rujukan fungsi, secara amnya disyorkan untuk meninggalkan kurungan untuk hujah fungsi.
Atas ialah kandungan terperinci Mengapa Tanda Kurung Sentiasa Mengelilingi Panggilan Fungsi dalam `setTimeout`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!