Adi olan, amma Function Expression olan funksiya JavaScript-də
Gəlin indi elə bir funksiya edək ki, onu adı olsun, amma eyni zamanda Function Expression olsun, çünki ifadədə iştirak edir:
+function func() {
console.log('!');
}
Maraqlıdır ki, func adı ilə
biz funksiyamıza müraciət edə bilməyəcəyik, bu
xəta ilə nəticələnəcək:
+function func() {
console.log('!');
}
func(); //!! xəta verəcək
Funksiyamızı çağırmaq imkanına malik olmaq üçün onu hansısa dəyişənə təyin etmək lazımdır:
let test = function func() {
console.log('!');
};
test(); // '!' çap edəcək
Bir daha: funksional ifadə olan funksiya onun adı ilə çağırıla bilməz. Belə bir funksiya yalnız həmin funksiyanın yazıldığı dəyişəndən istifadə etməklə çağırıla bilər.
Amma buna baxmayaraq, funksional ifadə funksiya adına malik ola bilər, bu sintaktik olarak düzgün olacaq. Bunun nə üçün lazım olduğunu sonrakı dərslərdə araşdıracağıq.
Nəticə çıxaraq: funksiyalar Function Declaration və ya Function Expression olurlar ona görə deyil ki, onların adı var ya yox, ona görə ki, ifadələrin iştirakçısıdırlar ya deyillər.
Yuxarıda gördüyünüz kimi, adsız funksiya Function Declaration kimi qəbul edilə bilər, adlı funksiya isə Function Expression ola bilər.