Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Melewati Parameter dengan Betul ke setTimeout() Panggilan balik dalam JavaScript?

Bagaimanakah Saya Melewati Parameter dengan Betul ke setTimeout() Panggilan balik dalam JavaScript?

Patricia Arquette
Lepaskan: 2024-12-16 17:08:12
asal
441 orang telah melayarinya

How Do I Correctly Pass Parameters to setTimeout() Callbacks in JavaScript?

Melalui Parameter ke setTimeout() Panggilan Balik

Dalam JavaScript, fungsi setTimeout() membenarkan anda menjadualkan fungsi yang akan dilaksanakan selepas kelewatan yang ditentukan tanpa menyekat gelung acara. Walau bagaimanapun, adalah penting untuk memahami cara menghantar parameter kepada fungsi panggil balik dengan betul.

Pertimbangkan kod berikut:

function statechangedPostQuestion() {
  // ...

  setTimeout("postinsql(topicId)", 4000);
}
Salin selepas log masuk

Kod ini cuba menghantar parameter topicId ke fungsi postinsql() menggunakan rentetan. Walau bagaimanapun, pendekatan ini tidak digunakan dan tidak berfungsi dalam versi JavaScript semasa.

Untuk menghantar parameter dengan betul kepada panggilan balik setTimeout(), anda harus mentakrifkan panggilan balik sebagai fungsi tanpa nama dan menghantarnya terus sebagai argumen:

setTimeout(function() {
  postinsql(topicId);
}, 4000);
Salin selepas log masuk

Pendekatan ini memastikan fungsi tidak dipanggil serta-merta dan parameter topicId tersedia dalam panggil balik.

Kemas kini:

Dengan kemunculan JavaScript moden, kini anda boleh menghantar argumen kepada setTimeout() panggilan balik menggunakan Function.prototype.bind(). Pendekatan ini menyediakan cara ringkas untuk mengikat argumen pada fungsi tanpa mencipta fungsi tanpa nama:

setTimeout(postinsql.bind(null, topicId), 4000);
Salin selepas log masuk

Dengan mengikut garis panduan ini, anda boleh menghantar parameter kepada setTimeout() panggil balik dengan betul, memastikan pelaksanaan yang betul dan mengelakkan ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Melewati Parameter dengan Betul ke setTimeout() Panggilan balik dalam JavaScript?. 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