⊗jsPmFTNFE 235 of 505 menu

Navngivne funktionsudtryk i JavaScript

Lad os sige, at vi har et funktionsudtryk som dette:

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

Lad os give vores funktion navnet func:

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

Som du allerede ved, kan man ikke tilgå funktionen via dette navn:

let test = function func() { console.log('!'); }; test(); // vil udskrive '!' func(); // vil give en fejl

Hvorfor give funktionen et navn, hvis det ikke vil være tilgængeligt? Grunden er, at dette navn vil være utilgængeligt udefra funktionen, men tilgængeligt inde i funktionen.

Lad os tjekke:

let test = function func() { console.log(func); // funktionen vil udskrive sin egen kildekode }; test(); // kalder funktionen

Lad os kalde vores funktion inde i den selv:

let test = function func() { console.log('!'); // udskriver '!' func(); // kalder os selv }; test();

Hvis denne kode køres, vil der blive udskrevet et uendeligt antal beskeder til konsollen.

Faktisk kan vores funktion kaldes inde i sig selv ikke kun som func, men også som test:

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

Hvad er forskellen? Forskellen er, at navnet test blot er en variabel. I processen af scriptets udførelse kan vores funktion blive tildelt en anden variabel eller sendes som en parameter - i dette tilfælde kan forbindelsen mellem variablen test og funktionen gå tabt.

Navnet func derimod er hårdt bundet til funktionen specifikt med henblik på at kunne tilgå vores funktion inde i den selv.

Sådanne Function Expression med funktionens navn kaldes navngivne funktionsudtryk.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis