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.
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.
Untuk melaksanakan fungsi tanpa nama, anda perlu membungkusnya kurungan, cth., (function() { ... })(). Sintaks ini membolehkan anda menggunakan fungsi dengan segera tanpa perlu menetapkannya kepada pembolehubah.
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');
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');
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.
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.
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!