Mengapa Tanda Kurung Sentiasa Mengelilingi Panggilan Fungsi dalam `setTimeout`?

Mary-Kate Olsen
Lepaskan: 2024-11-23 18:27:17
asal
682 orang telah melayarinya

Why Don't Parentheses Always Surround Function Calls in `setTimeout`?

Bila Menggunakan Tanda Kurung dalam Panggilan Fungsi

Apabila meneliti kod berikut:

var myFunction = function() {
  setTimeout(myFunction, 1000);
}
myFunction();
Salin selepas log masuk

Seseorang mungkin tertanya-tanya mengapa panggilan fungsi dalam setTimeout tidak memerlukan kurungan manakala seruan fungsi bebas tidak.

Memahami Perbezaan

  • myFunction: Nama ini merujuk kepada definisi fungsi.
  • myFunction(): Penambahan kurungan memanggil fungsi.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan