Melengahkan Perlaksanaan Skrip JavaScript dengan setTimeout
Menggunakan kaedah setTimeout JavaScript, anda boleh melaksanakan skrip selepas kelewatan yang ditentukan. Tidak seperti kelewatan() atau tunggu() jQuery, setTimeout secara langsung mengambil fungsi panggil balik sebagai hujah dan menetapkan kelewatan dalam milisaat.
Pelaksanaan Asynchronous dengan setTimeout
Apabila anda lulus fungsi sebagai hujah kepada setTimeout, ia dijadualkan untuk dijalankan selepas kelewatan yang ditentukan. Tingkah laku tak segerak ini memastikan bahawa pelaksanaan skrip tidak disekat, membenarkan bahagian lain atur cara diteruskan.
Meluluskan Parameter ke Fungsi Tertunda
Jika anda perlu lulus parameter kepada fungsi tertunda, anda boleh sama ada menggunakan fungsi bernama atau fungsi tanpa nama. Walau bagaimanapun, ambil perhatian tentang isu skop pembolehubah apabila menggunakan fungsi tanpa nama.
Untuk memastikan bahawa parameter yang diluluskan dalam masa kini dikekalkan dalam skop fungsi tertunda, buat fungsi yang mengembalikan fungsi baharu yang menerima parameter yang dikehendaki. Ini merangkum nilai parameter dan membolehkan fungsi tertunda mengaksesnya kemudian.
Contoh dengan Skop Pembolehubah
<code class="js">var a = "world"; setTimeout(alert("Hello " + a), 2000); // Calls alert immediately</code>
Parameter Merangkum dengan Fungsi Tanpa Nama
<code class="js">var a = "world"; setTimeout(function() { alert("Hello " + a); }, 2000); // Calls alert after 2 seconds with 'Hello world'</code>
Merangkum Parameter dengan Fungsi Yang Mengembalikan Fungsi
<code class="js">function callback(param) { return function() { alert("Hello " + param); }; } var a = "world"; setTimeout(callback(a), 2000); // Calls alert after 2 seconds with 'Hello world'</code>
Ini membolehkan anda menghantar parameter kepada fungsi tertunda dan memastikan ia mengekalkan fungsinya nilai yang betul walaupun terdapat sebarang perubahan yang dibuat pada skop pembolehubah sementara itu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melewati Parameter kepada Fungsi Tertunda dengan setTimeout?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!