Fungsi dengan Nama, tetapi Function Expression di JavaScript
Sekarang mari kita buat fungsi yang akan memiliki nama, tetapi tetap merupakan Function Expression, karena berpartisipasi dalam ekspresi:
+function func() {
console.log('!');
}
Menariknya, dengan nama func kita
tidak dapat memanggil fungsi kita, ini akan
menyebabkan error:
+function func() {
console.log('!');
}
func(); //!! akan menghasilkan error
Untuk dapat memanggil fungsi kita, fungsi tersebut perlu ditugaskan ke suatu variabel:
let test = function func() {
console.log('!');
};
test(); // akan menampilkan '!'
Sekali lagi: fungsi yang merupakan ekspresi fungsional tidak dapat dipanggil berdasarkan namanya. Fungsi seperti itu hanya dapat dipanggil dengan menggunakan variabel tempat fungsi tersebut disimpan.
Namun demikian, ekspresi fungsional dapat memiliki nama fungsi, hal ini secara sintaksis benar. Untuk apa hal seperti itu diperlukan, akan kita bahas dalam pelajaran berikutnya.
Mari kita simpulkan: fungsi adalah Function Declaration atau Function Expression bukan karena mereka memiliki nama atau tidak, tetapi karena mereka merupakan peserta ekspresi atau bukan.
Seperti yang Anda lihat di atas, fungsi tanpa nama dapat dianggap sebagai Function Declaration, dan fungsi dengan nama dapat menjadi Function Expression.