Elnevezett függvény, de Function Expression JavaScriptben
Most készítsünk egy függvényt, amelynek lesz neve, de mégis Function Expression lesz, mert kifejezés részeként jelenik meg:
+function func() {
console.log('!');
}
Érdekes, hogy a func névvel
nem fogunk tudni hivatkozni a függvényünkre, ez
hibához fog vezetni:
+function func() {
console.log('!');
}
func(); //!! hibát jelez
Ahhoz, hogy meghívhassuk a függvényünket, azt valamilyen változónak kell értékül adnunk:
let test = function func() {
console.log('!');
};
test(); // kiírja '!'-t
Még egyszer: egy funkcionális kifejezésként szolgáló függvény nem hívható meg a saját nevével. Egy ilyen függvényt csak azzal a változóval lehet meghívni, amelybe a függvényt elmentettük.
Ennek ellenére egy funkcionális kifejezésnek lehet függvényneve, ez szintaktikailag helyes. Hogy ez miért hasznos, a következő leckékben fogjuk megvizsgálni.
Összegezzük: a függvények Function Declaration-ök vagy Function Expression-ök nem attól függően, hogy van nevük vagy nincs, hanem attól, hogy részt vesznek-e kifejezésekben vagy sem.
Ahogy fent láttad, egy név nélküli függvény is felfogható Function Declaration-ként, egy elnevezett függvény pedig lehet Function Expression.