⊗jsPmFTNFE 235 of 505 menu

Pojmenované funkční výrazy v JavaScriptu

Předpokládejme, že máme takový funkční výraz:

let test = function() { console.log('!'); }; test(); // vypíše '!'

Pojďme naší funkci dát jméno func:

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

Jak již víte, podle tohoto jména nelze k funkci přistoupit:

let test = function func() { console.log('!'); }; test(); // vypíše '!' func(); // vrátí chybu

Proč tedy dávat funkci jméno, pokud nebude přístupné? Jde o to, že toto jméno bude nepřístupné zvenčí funkce, ale přístupné uvnitř této funkce.

Pojďme to ověřit:

let test = function func() { console.log(func); // funkce vypíše svůj vlastní zdrojový kód }; test(); // voláme funkci

Pojďme zavolat naši funkci uvnitř ní samotné:

let test = function func() { console.log('!'); // vypíšeme '!' func(); // voláme sami sebe }; test();

Pokud spustíte tento kód, bude se do konzole vypisovat nekonečné množství výpisů do konzole.

Ve skutečnosti může být naše funkce volána uvnitř sebe sama nejen jako func, ale i jako test:

let test = function func() { console.log('!'); test(); // voláme sami sebe }; test();

V čem je tedy rozdíl? Rozdíl je v tom, že jméno test - je pouze proměnná. Během práce skriptu se naše funkce může zapsat do jiné proměnné nebo předat parametrem - v tomto případě může souvislost mezi proměnnou test a funkcí zmizet.

Jméno func je naopak pevně svázáno s funkcí specifikálně proto, aby bylo možné přistoupit k naší funkci uvnitř ní samotné.

Takové Function Expression s názvem funkce se nazývají pojmenované funkční výrazy.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout