⊗jsPmFTNFE 235 of 505 menu

Namngivna funktionsuttryck i JavaScript

Låt oss säga att vi har ett funktionsuttryck som ser ut så här:

let test = function() { console.log('!'); }; test(); // skriver ut '!'

Låt oss ge vår funktion namnet func:

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

Som du redan vet går det inte att komma åt funktionen via detta namn:

let test = function func() { console.log('!'); }; test(); // skriver ut '!' func(); // ger ett fel

Varför ge funktionen ett namn om det inte kommer att vara tillgängligt? Anledningen är att detta namn inte kommer att vara tillgängligt utanför funktionen, men tillgängligt inuti funktionen.

Låt oss kolla:

let test = function func() { console.log(func); // funktionen kommer att skriva ut sin egen källkod }; test(); // anropar funktionen

Låt oss anropa vår funktion inuti sig själv:

let test = function func() { console.log('!'); // skriver ut '!' func(); // anropar oss själva }; test();

Om du kör denna kod kommer ett oändligt antal utskrifter att visas i konsolen.

Faktum är att vår funktion kan anropas inuti sig själv inte bara som func, utan också som test:

let test = function func() { console.log('!'); test(); // anropar oss själva }; test();

Vad är då skillnaden? Skillnaden är att namnet test bara är en variabel. Under skriptets arbete kan vår funktion skrivas till en annan variabel eller skickas som en parameter - i detta fall kan kopplingen mellan variabeln test och funktionen försvinna.

Namnet func är däremot hårt knutet till funktionen specifikt för att möjliggöra åtkomst till vår funktion inuti sig själv.

Sådana Function Expression med funktionsnamn kallas namngivna funktionsuttryck.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa