Mengapa Fungsi Tanpa Nama Perlu Digunakan pada Baris yang Sama
Adalah amalan biasa untuk mencipta dan menggunakan fungsi tanpa nama pada baris yang sama untuk merangkum tingkah laku tertentu atau melindungi data daripada skop global. Walau bagaimanapun, memahami mekanisme asas corak ini boleh mencerahkan.
Sintaks Fungsi Tanpa Nama
Fungsi tanpa nama ditakrifkan tanpa pengecam. Menggunakan sintaks ungkapan fungsi:
(function(params) { ... })
Pencetus Pelaksanaan
Untuk melaksanakan fungsi tanpa nama, ia mesti dikelilingi oleh kurungan. Ini mencetuskan enjin JavaScript untuk menganggap ungkapan sebagai panggilan fungsi.
Perbezaan Sintaks
Berfungsi:
(function(msg) { alert(msg); })('SO');
Sintaks ini mencipta fungsi tanpa nama yang memaklumkan mesej. Fungsi ini dipanggil serta-merta oleh kurungan sekeliling.
Tidak Berfungsi:
(function(msg) { alert(msg); }); ('SO');
Sintaks ini akan gagal kerana koma bertitik selepas definisi fungsi menamatkan pernyataan. Baris berikutnya dianggap sebagai pernyataan berasingan, cuba menghantar rentetan kepada tidak ditentukan.
Ungkapan Fungsi lwn. Pengisytiharan Fungsi
Ungkapan fungsi berbeza daripada pengisytiharan fungsi (cth. , "nama fungsi(...) {...}"). Walaupun pengisytiharan mesti mempunyai pengecam, ungkapan fungsi boleh tanpa nama. Ini membolehkannya digunakan dalam situasi di mana penamaan tidak diperlukan atau diingini.
Pengecam Dalam Skop
Ekspresi fungsi tanpa nama boleh mempunyai pengecam pilihan dalam skopnya. Walau bagaimanapun, pengecam ini hanya sah dalam badan fungsi.
Rujukan
Dengan memahami konsep ini, pembangun boleh menggunakan fungsi tanpa nama dengan yakin untuk mencapai enkapsulasi dan mengekalkan organisasi kod.
Atas ialah kandungan terperinci Mengapakah Ungkapan Fungsi Yang Dikenakan Segera (IIFE) Mesti Ditakrifkan dan Dipanggil pada Talian Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!