Nomi bor, lekin Function Expression bo‘lgan funksiya JavaScriptda
Keling, endi nomi bo‘lgan, lekin ifodada ishtirok etayotgani uchun Function Expression bo‘lgan funksiya yaratamiz:
+function func() {
console.log('!');
}
Qizigi shundaki, func nomi orqali biz o‘zimizning funksiyamizga
murojaat qila olmaymiz, bu xatolikka olib keladi:
+function func() {
console.log('!');
}
func(); //!! xatolik beradi
Funksiyamizni chaqirish imkoniyatiga ega bo‘lish uchun uni qandaydir o‘zgaruvchiga tayinlash kerak:
let test = function func() {
console.log('!');
};
test(); // '!' ni chiqaradi
Yana bir bor: funksional ifoda bo‘lgan funksiya uning nomi bilan chaqirilishi mumkin emas. Bunday funksiyani faqatgina o‘sha funksiya yozilgan o‘zgaruvchi yordamida chaqirish mumkin.
Shunday bo‘lsa-da, funksional ifoda funksiya nomiga ega bo‘lishi mumkin, bu sintaktik jihatdan to‘g‘ri bo‘ladi. Buning nima uchun kerakligini keyingi darslarda ko‘rib chiqamiz.
Xulosa qilaylik: funksiyalar Function Declaration yoki Function Expression hisoblanadi, chunki ular nomga ega yoki yo‘qligi sababli emas, balki ifodalarda ishtirok etayotganligi yoki etmayotganligi sababli.
Yuqorida ko‘rganingizdek, nomasiz funksiya Function Declaration deb qaralishi mumkin, nomli funksiya esa Function Expression bo‘lishi mumkin.