Funkcija z imenom, vendar Function Expression v JavaScriptu
Sedaj naredimo funkcijo, ki bo imeti ime, vendar bo Function Expression, ker sodeluje v izrazu:
+function func() {
console.log('!');
}
Zanimivo je, da po imenu func ne
bomo mogli dostopiti do naše funkcije, to bo
povzročilo napako:
+function func() {
console.log('!');
}
func(); //!! bo vrglo napako
Da lahko pokličemo našo funkcijo, jo moramo dodeliti neki spremenljivki:
let test = function func() {
console.log('!');
};
test(); // bo izpisalo '!'
Še enkrat: funkcija, ki je funkcionalni izraz, ne more biti klicana po njenem imenu. Takšno funkcijo je mogoče klicati samo z uporabo spremenljivke, v katero je bila zapisana ta funkcija.
Vendar kljub temu lahko funkcionalni izraz ima ime funkcije, to bo skladenjsko pravilno. Zakaj je to potrebno, bomo razumeli v naslednjih lekcijah.
Povzemimo: funkcije so Function Declaration ali Function Expression ne zato, ker imajo ime ali ga nimajo, temveč zato, ker so udeleženci izrazov ali niso.
Kot ste videli zgoraj, je lahko funkcija brez imena razumeljena kot Function Declaration, funkcija z imenom pa je lahko Function Expression.