Funkcija sa imenom, ali Function Expression u JavaScript-u
Hajde sada da napravimo funkciju koja će imati ime, ali će pri tome biti Function Expression, jer učestvuje u izrazu:
+function func() {
console.log('!');
}
Zanimljivo je što po imenu func mi nećemo
moći da pristupimo našoj funkciji, to će
dovoditi do greške:
+function func() {
console.log('!');
}
func(); //!! izaći će greška
Da bismo imali mogućnost da pozovemo našu funkciju, treba da je dodelimo nekoj promenljivoj:
let test = function func() {
console.log('!');
};
test(); // ispisaće '!'
Još jednom: funkcija koja je funkcionalni izraz ne može biti pozvana po svom imenu. Takva funkcija može biti pozvana samo upotrebom promenljive u koju je ova funkcija upisana.
Ali ipak, funkcionalni izraz može imati ime funkcije, to će sintaksički biti korektno. Zašto je to potrebno, analiziraćemo u narednim lekcijama.
Da rezimiramo: funkcije su Function Declaration ili Function Expression ne zato što imaju ime ili ga nemaju, već zato što su učesnici izraza ili nisu.
Kao što ste videli gore, funkcija bez imena može biti shvaćena kao Function Declaration, a funkcija sa imenom može biti Function Expression.