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

Mengapa `setTimeout` Melaksanakan Fungsi Saya Serta-merta?

Linda Hamilton
Linda Hamiltonasal
2024-12-22 06:38:13948semak imbas

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);

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);

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!

Kenyataan:
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