Funkcia s názvom, ale Function Expression v JavaScripte
Teraz vytvorme funkciu, ktorá bude mať názov, ale zároveň bude Function Expression, pretože sa zúčastňuje výrazu:
+function func() {
console.log('!');
}
Zaujímavé je, že podľa mena func
nebudeme môcť pristupovať k našej funkcii, bude to
spôsobovať chybu:
+function func() {
console.log('!');
}
func(); //!! vyhodí chybu
Aby sme mali možnosť volať našu funkciu, je potrebné ju priradiť k nejakej premennej:
let test = function func() {
console.log('!');
};
test(); // vypíše '!'
Ešte raz: funkcia, ktorá je funkčným výrazom, nemôže byť volaná podľa jej mena. Takáto funkcia môže byť volaná iba s použitím premennej, do ktorej bola zapísaná táto funkcia.
Ale napriek tomu, funkčný výraz môže mať názov funkcie, bude to syntakticky správne. Načo takéto niečo potrebujeme, budeme skúmať v nasledujúcich lekciách.
Zhrňme si: funkcie sú Function Declaration alebo Function Expression nie preto, že majú meno alebo nemajú, ale preto, že sú účastníkmi výrazov alebo nie sú.
Ako ste videli vyššie, funkcia bez mena môže byť vnímaná ako Function Declaration, a funkcia s menom môže byť Function Expression.