Rumah >hujung hadapan web >tutorial js >Panggilan Fungsi JavaScript: Tanda Kurung Kosong – Penyerahan Segera atau Tugasan Rujukan?

Panggilan Fungsi JavaScript: Tanda Kurung Kosong – Penyerahan Segera atau Tugasan Rujukan?

Susan Sarandon
Susan Sarandonasal
2024-12-08 13:56:11384semak imbas

JavaScript Function Calls:  Empty Parentheses – Immediate Invocation or Reference Assignment?

Invokasi Fungsi JavaScript: Kurung Penting

Memanggil fungsi dengan kurungan kosong atau tanpa kurungan sama sekali mungkin kelihatan tidak penting untuk fungsi tanpa hujah. Walau bagaimanapun, pemeriksaan yang lebih dekat mendedahkan perbezaan yang ketara.

Seruan Segera vs. Tugasan Rujukan

Pertimbangkan dua contoh berikut:

window.onload = initAll();
window.onload = initAll;

1 . Invokasi Segera:

Dalam contoh pertama, kurungan kosong memanggil fungsi initAll() serta-merta dan nilai pulangan diberikan kepada window.onload. Biasanya, ini bukan gelagat yang diingini kerana initAll harus dilaksanakan apabila acara onload berlaku.

2. Tugasan Rujukan:

Dalam contoh kedua, fungsi initAll itu sendiri diberikan kepada window.onload. Ini bermakna bahawa fungsi tidak akan dilaksanakan sehingga acara beban dicetuskan. Pendekatan ini memastikan bahawa pengendali acara disediakan dengan betul.

Fungsi sebagai Objek

Dalam JavaScript, fungsi ialah objek kelas pertama. Ini bermakna ia boleh disimpan dalam pembolehubah, diluluskan sebagai hujah dan ditetapkan sebagai sifat. Inilah sebabnya mengapa sintaks berikut adalah sah:

window.onload = () => initAll();

Dalam kes ini, fungsi tanpa nama dicipta yang, apabila dipanggil, memanggil initAll() serta-merta. Walau bagaimanapun, rujukan fungsi luar ini masih diberikan kepada window.onload, jadi pengendali acara akan menunggu acara pemuatan untuk mencetuskan pelaksanaan kedua-dua fungsi.

Atas ialah kandungan terperinci Panggilan Fungsi JavaScript: Tanda Kurung Kosong – Penyerahan Segera atau Tugasan Rujukan?. 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