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