Fungsi Bernama, tetapi Expression Fungsi dalam JavaScript
Sekarang mari kita buat fungsi yang akan mempunyai nama, tetapi pada masa yang sama merupakan Expression Fungsi, kerana mengambil bahagian dalam ungkapan:
+function func() {
console.log('!');
}
Menariknya, dengan nama func kita
tidak akan dapat mengakses fungsi kami, ini akan
mengakibatkan ralat:
+function func() {
console.log('!');
}
func(); //!! akan memberikan ralat
Untuk dapat memanggil fungsi kami, ia perlu ditetapkan kepada beberapa pembolehubah:
let test = function func() {
console.log('!');
};
test(); // akan memaparkan '!'
Sekali lagi: fungsi yang merupakan expression fungsi tidak boleh dipanggil dengan namanya. Fungsi sedemikian hanya boleh dipanggil dengan menggunakan pembolehubah di mana fungsi ini telah ditulis.
Namun begitu, expression fungsi boleh mempunyai nama fungsi, ini akan menjadi sintaksis yang betul. Untuk apa keperluan sedemikian, kami akan membincangkannya dalam pelajaran seterusnya.
Mari kita ringkaskan: fungsi adalah Function Declaration atau Function Expression bukan kerana mereka mempunyai nama atau tidak, tetapi kerana mereka adalah peserta dalam ungkapan atau tidak.
Seperti yang anda lihat di atas, fungsi tanpa nama boleh dianggap sebagai Function Declaration, dan fungsi dengan nama boleh menjadi Function Expression.