⊗jsPmFTNFE 235 of 505 menu

Navngitte funksjonsuttrykk i JavaScript

La oss si at vi har et funksjonsuttrykk som dette:

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

La oss gi funksjonen vår navnet func:

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

Som du allerede vet, kan man ikke få tilgang til funksjonen via dette navnet:

let test = function func() { console.log('!'); }; test(); // vil skrive ut '!' func(); // vil gi en feil

Hvorfor gi funksjonen et navn hvis det ikke vil være tilgjengelig? Poenget er at dette navnet vil være utilgjengelig utenfor funksjonen, men tilgjengelig inni denne funksjonen.

La oss sjekke:

let test = function func() { console.log(func); // funksjonen vil skrive ut sin egen kildekode }; test(); // kaller funksjonen

La oss kalle funksjonen vår inni seg selv:

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

Hvis du kjører denne koden, vil det skrives ut et uendelig antall utskrifter til konsollen.

Faktisk kan funksjonen vår kalles innenfor seg selv ikke bare som func, men også som test:

let test = function func() { console.log('!'); test(); // kaller oss selv }; test();

Hva er forskjellen? Forskjellen er at navnet test bare er en variabel. I prosessen med å kjøre skriptet kan funksjonen vår bli tildelt en annen variabel eller sendt som en parameter - i så fall kan forbindelsen mellom variabelen test og funksjonen forsvinne.

Navnet func derimot er hardkoblet til funksjonen spesielt for å gjøre det mulig å referere til funksjonen vår innenfor seg selv.

Slike Function Expression med funksjonsnavn kalles navngitte funksjonsuttrykk.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis