Rumah > hujung hadapan web > tutorial js > Mengapa `setTimeout` Melaksanakan Fungsi Saya Serta-merta?

Mengapa `setTimeout` Melaksanakan Fungsi Saya Serta-merta?

Linda Hamilton
Lepaskan: 2024-12-22 06:38:13
asal
908 orang telah melayarinya

Why Does `setTimeout` Execute My Function Immediately?

Mengapa Fungsi Melaksanakan Serta-merta dengan setTimeout()?

Apabila menggunakan setTimeout dalam JavaScript, anda mungkin menghadapi masalah di mana fungsi tersebut dilaksanakan serta-merta, tanpa mengambil kira kelewatan yang ditentukan . Anomali ini boleh dikaitkan dengan perangkap biasa.

Isu timbul apabila anda memanggil fungsi dalam argumen setTimeout, seperti ini:

setTimeout(testfunction(), 2000);
Salin selepas log masuk

Sintaks ini serta-merta menggunakan testfunction(), dan setTimeout menjadualkan nilai pulangan bagi panggilan fungsi itu untuk dilaksanakan selepas kelewatan yang ditentukan. Akibatnya, fungsi berjalan serta-merta dan pemasa menjadi berlebihan.

Untuk menyelesaikan isu ini, anda harus lulus fungsi itu sendiri sebagai hujah tanpa menggunakannya:

setTimeout(testFunction, 2000);
Salin selepas log masuk

Perhatikan ketiadaan kurungan selepas testFunction. Pendekatan ini memastikan bahawa pelaksanaan fungsi dijadualkan selepas kelewatan telah berlalu, membolehkan ia berfungsi seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa `setTimeout` Melaksanakan Fungsi Saya Serta-merta?. 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