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:

javascript+function func() {
  console.log('!');
}

Érdekes, hogy a func névvel nem fogunk tudni hivatkozni a függvényünkre, ez hibához fog vezetni:

javascript+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:

javascriptlet 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.