Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Lulus Fungsi sebagai Parameter dalam JavaScript Tanpa Pelaksanaan Segera?

Bagaimana untuk Lulus Fungsi sebagai Parameter dalam JavaScript Tanpa Pelaksanaan Segera?

DDD
DDDasal
2024-11-28 08:19:101029semak imbas

How to Pass Functions as Parameters in JavaScript Without Immediate Execution?

Meluluskan Fungsi sebagai Parameter dalam JavaScript

Dalam JavaScript, adalah mungkin untuk menghantar fungsi sebagai parameter kepada fungsi lain tanpa menggunakan fungsi tersebut sebelum waktunya. Ini boleh berguna apabila anda ingin menangguhkan pelaksanaan fungsi sehingga satu masa kemudian.

Masalah:

Apabila menghantar fungsi sebagai parameter, ia adalah penting untuk mengelak daripada melaksanakannya dengan segera. Sebagai contoh, kod berikut melaksanakan refreshContactList() apabila ia diluluskan sebagai parameter untuk addContact():

addContact(entityId, refreshContactList());

Penyelesaian:

Untuk lulus rujukan fungsi tanpa melaksanakannya, cuma keluarkan kurungan:

addContact(entityId, refreshContactList);

Teknik ini membolehkan anda lulus fungsi sebagai parameter tanpa mencetuskan seruannya. Berikut ialah contoh yang menggambarkan cara untuk menghantar fungsi sebagai parameter dan melaksanakannya kemudian:

function addContact(id, refreshCallback) {
    refreshCallback(); // Execute the function passed as the second parameter
}

function refreshContactList() {
    alert('Hello World');
}

addContact(1, refreshContactList);

Dalam contoh ini, fungsi addContact() mengambil dua parameter: id dan refreshCallback. Apabila fungsi addContact() dipanggil, hujah refreshCallback dihantar sebagai rujukan kepada fungsi refreshContactList(). Fungsi refreshContactList() tidak dilaksanakan sehingga ia dipanggil dalam fungsi addContact().

Atas ialah kandungan terperinci Bagaimana untuk Lulus Fungsi sebagai Parameter dalam JavaScript Tanpa Pelaksanaan Segera?. 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