Funkcija ar nosaukumu, bet Function Expression JavaScript
Tagad izveidosim funkciju, kurai būs nosaukums, bet tā būs Function Expression, jo piedalās izteiksmē:
+function func() {
console.log('!');
}
Interesanti, ka pēc nosaukuma func mēs
nevarēsim piekļūt mūsu funkcijai, tas
izraisīs kļūdu:
+function func() {
console.log('!');
}
func(); //!! izvadīs kļūdu
Lai varētu izsaukt mūsu funkciju, tā jāpiešķir kādam mainīgajam:
let test = function func() {
console.log('!');
};
test(); // izvadīs '!'
Vēlreiz: funkcija, kas ir funkcionāla izteiksme, nevar tikt izsaukta pēc tās nosaukuma. Šādu funkciju var izsaukt tikai ar mainīgā lietošanu, kurā šī funkcija tika ierakstīta.
Bet tomēr, funkcionālajai izteiksmei var būt funkcijas nosaukums, tas būs sintaktiski korekti. Kāpēc tas ir vajadzīgs, mēs apskatīsim nākamajās nodarbībās.
Rezumējim: funkcijas ir Function Declaration vai Function Expression ne tāpēc, ka tām ir nosaukums vai nav, bet tāpēc, ka tās ir izteiksmju dalībnieces vai nav.
Kā jūs redzējāt iepriekš, funkcija bez nosaukuma var tikt uztverta kā Function Declaration, un funkcijai ar nosaukumu var būt Function Expression.