⊗jsPmFTNFE 235 of 505 menu

Genoemde functionele expressies in JavaScript

Stel we hebben de volgende functionele expressie:

let test = function() { console.log('!'); }; test(); // geeft '!' weer

Laten we onze functie de naam func geven:

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

Zoals je al weet, kan je niet via deze naam bij de functie:

let test = function func() { console.log('!'); }; test(); // geeft '!' weer func(); // geeft een foutmelding

Waarom zou je de functie een naam geven als deze niet beschikbaar is? Het punt is dat deze naam niet toegankelijk is buiten de functie, maar wel binnenin deze functie.

Laten we dit testen:

let test = function func() { console.log(func); // de functie geeft haar eigen broncode weer }; test(); // roepen de functie aan

Laten we onze functie binnenin zichzelf aanroepen:

let test = function func() { console.log('!'); // geven '!' weer func(); // roepen onszelf aan }; test();

Als je deze code uitvoert, zal er een oneindig aantal keer naar de console worden uitgevoerd.

In feite kan onze functie binnenin zichzelf niet alleen worden aangeroepen als func, maar ook als test:

let test = function func() { console.log('!'); test(); // roepen onszelf aan }; test();

Wat is dan het verschil? Het verschil is dat de naam test slechts een variabele is. Tijdens het uitvoeren van het script kan onze functie in een andere variabele worden opgeslagen of als parameter worden doorgegeven - in dat geval kan de verbinding tussen de variabele test en de functie verbroken worden.

De naam func is daarentegen hard aan de functie gebonden, specifiek zodat we naar onze functie binnenin zichzelf kunnen verwijzen.

Dergebijke Function Expression met een functienaam worden genoemde functionele expressies genoemd.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren