Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Melewati Parameter kepada Fungsi Tertunda dengan setTimeout?

Bagaimanakah Saya Boleh Melewati Parameter kepada Fungsi Tertunda dengan setTimeout?

Susan Sarandon
Susan Sarandonasal
2024-11-03 07:52:02590semak imbas

How Can I Pass Parameters to Functions Delayed with setTimeout?

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!

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