Rumah > hujung hadapan web > tutorial js > Mengapa Ungkapan Fungsi Yang Dikenakan Segera (IIFE) Mesti Ditakrifkan dan Dikenakan pada Baris Tunggal dalam JavaScript?

Mengapa Ungkapan Fungsi Yang Dikenakan Segera (IIFE) Mesti Ditakrifkan dan Dikenakan pada Baris Tunggal dalam JavaScript?

Mary-Kate Olsen
Lepaskan: 2024-12-04 15:29:15
asal
543 orang telah melayarinya

Why Must Immediately Invoked Function Expressions (IIFEs) Be Defined and Invoked on a Single Line in JavaScript?

Mengapa Perlu Menggunakan Fungsi Tanpa Nama pada Baris Yang Sama?

Dalam JavaScript, fungsi tanpa nama boleh ditakrifkan dan digunakan serta-merta pada baris yang sama. Teknik ini biasanya digunakan untuk membuat penutupan atau memodulasi kod. Walau bagaimanapun, ia boleh mengelirukan mengapa kedua-dua langkah mesti dilakukan pada baris yang sama.

Ungkapan Fungsi lwn. Pengisytiharan

Fungsi JavaScript boleh ditakrifkan menggunakan dua kaedah: ungkapan fungsi dan pengisytiharan fungsi. Pengisytiharan fungsi, seperti fungsi sum(a, b) { ... }, mencipta fungsi bernama yang merupakan sebahagian daripada skop global. Ungkapan fungsi, sebaliknya, mencipta fungsi tanpa nama yang biasanya disimpan dalam pembolehubah atau digunakan sebagai panggilan balik.

Memanfaatkan Fungsi Tanpa Nama

Untuk melaksanakan fungsi tanpa nama, anda perlu membungkusnya kurungan, cth., (function() { ... })(). Sintaks ini membolehkan anda menggunakan fungsi dengan segera tanpa perlu menetapkannya kepada pembolehubah.

Seruan Baris Sama

Jika anda cuba mentakrif dan menggunakan fungsi tanpa nama pada baris berasingan, anda akan dapatkan ralat:

(
function (msg){
    alert(msg);
} // missing semicolon
); // semicolon ends the statement
('SO');
Salin selepas log masuk

Ini kerana koma bernoktah selepas definisi fungsi menamatkan pernyataan, meninggalkan baris berikut sebagai ungkapan kurungan kendiri. Untuk membetulkannya, anda perlu mengalih keluar koma bertitik dan menggunakan fungsi pada baris yang sama:

(function (msg){
    alert(msg);
})('SO');
Salin selepas log masuk

Penjelasan

Sebab keperluan ini berpunca daripada gelagat pemasukan koma bertitik JavaScript. Jika kenyataan tiada koma bertitik pada penghujungnya, JavaScript akan memasukkannya secara automatik. Dalam contoh di atas, apabila anda mengalih keluar koma bertitik selepas definisi fungsi, JavaScript memasukkan satu di hujung baris, dengan berkesan menamatkan pernyataan fungsi.

Penutupan

Seruan segera daripada fungsi tanpa nama juga berfungsi untuk membuat penutupan. Penutupan ialah fungsi yang mempunyai akses kepada pembolehubah skop induknya, walaupun selepas fungsi induk selesai dilaksanakan. Dalam contoh di atas, fungsi tanpa nama mempunyai akses kepada pembolehubah msg, yang biasanya akan berada di luar skop selepas badan fungsi tamat.

Kesimpulan

Menyebut fungsi tanpa nama pada baris yang sama ialah teknik yang membolehkan penciptaan penutupan dan kod modular. Adalah penting untuk memahami perbezaan antara ungkapan fungsi dan pengisytiharan, serta gelagat sisipan koma bernoktah JavaScript, untuk mengelakkan ralat biasa.

Atas ialah kandungan terperinci Mengapa Ungkapan Fungsi Yang Dikenakan Segera (IIFE) Mesti Ditakrifkan dan Dikenakan pada Baris Tunggal 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