⊗jsPmFTNFE 235 of 505 menu

Elnevezett funkcionális kifejezések a JavaScriptben

Tegyük fel, hogy van egy ilyen funkcionális kifejezésünk:

let test = function() { console.log('!'); }; test(); // kiírja '!'

Adjunk nevet a függvényünknek func:

let test = function func() { console.log('!'); }; test();

Mint már tudjátok, ezen a néven nem lehet hozzáférni a függvényhez:

let test = function func() { console.log('!'); }; test(); // kiírja '!' func(); // hibát ad

Miért adjunk nevet a függvénynek, ha az nem lesz elérhető? Az a helyzet, hogy ez a név a függvényen kívülről nem lesz elérhető, de a függvényen belülről igen.

Vizsgáljuk meg:

let test = function func() { console.log(func); // a függvény kiírja a saját forráskódját }; test(); // meghívjuk a függvényt

Hívjuk meg a függvényünket önmagán belül:

let test = function func() { console.log('!'); // kiírjuk '!' func(); // meghívjuk önmagunkat }; test();

Ha ezt a kódot futtatjuk, akkor a konzolba végtelen számú üzenet kerül kiírásra.

Valójában a függvényünk önmagán belül nem csak func néven hívható meg, hanem test néven is:

let test = function func() { console.log('!'); test(); // meghívjuk önmagunkat }; test();

Mi a különbség? A különbség az, hogy a test név csupán egy változó. A szkript futása során a függvényünk lehet, hogy egy másik változóba kerül, vagy paraméterként adódik át - ebben az esetben a test változó és a függvény közötti kapcsolat megszűnhet.

Az func név viszont szigorúan a függvényhez van kötve, kifejezetten azért, hogy a függvényen belülről lehessen hivatkozni rá.

Az ilyen, függvénynévvel rendelkező Function Expression-öket elnevezett funkcionális kifejezéseknek nevezzük.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás