Funkcija su vardu, bet Function Expression JavaScripte
Dabar sukurkime funkciją, kuri turės vardą, bet tuo pačiu bus Function Expression, nes dalyvauja išraiškoje:
+function func() {
console.log('!');
}
Įdomu tai, kad pagal vardą func mes
negalesime kreiptis į mūsų funkciją, tai sukels
klaidą:
+function func() {
console.log('!');
}
func(); //!! išmes klaidą
Kad galėtume iškviesti mūsų funkciją, ji turi būti priskirta kokiam nors kintamajam:
let test = function func() {
console.log('!');
};
test(); // išves '!'
Dar kartą: funkcija, kuri yra funkcinė išraiška, negali būti iškviesta pagal jos vardą. Tokia funkcija gali būti iškviesta tik naudojant kintamąjį, į kurį buvo įrašyta ta funkcija.
Tačiau vis dėlto, funkcinė išraiška gali turėti funkcijos vardą, tai bus sintaksiškai teisinga. Kam to reikia, nagrinėsime sekančiose pamokose.
Apibendrinkime: funkcijos yra Function Declaration arba Function Expression ne dėl to, kad turi vardą arba neturi, o dėl to, kad yra išraiškų dalyvės arba nėra.
Kaip matėte aukščiau, funkcija be vardo gali būti suvokiama kaip Function Declaration, o funkcija su vardu gali būti Function Expression.