Functie met een naam, maar Function Expression in JavaScript
Laten we nu een functie maken die een naam heeft, maar toch een Function Expression is, omdat hij deelneemt aan een expressie:
+function func() {
console.log('!');
}
Interessant is dat we niet
bij onze functie kunnen komen via de naam func, dit zal
tot een fout leiden:
+function func() {
console.log('!');
}
func(); //!! geeft een foutmelding
Om onze functie te kunnen aanroepen, moet deze aan een variabele worden toegewezen:
let test = function func() {
console.log('!');
};
test(); // geeft '!' weer
Nogmaals: een functie die een function expression is, kan niet worden aangeroepen door zijn naam. Zo'n functie kan alleen worden aangeroepen met behulp van de variabele waarin deze functie was opgeslagen.
Desalniettemin kan een function expression een functienaam hebben, dit is syntactisch correct. Waarom dit nuttig is, zullen we in de volgende lessen behandelen.
Laten we samenvatten: functies zijn Function Declaration of Function Expression niet omdat ze een naam hebben of niet, maar omdat ze deel uitmaken van expressies of niet.
Zoals je hierboven zag, kan een functie zonder naam worden opgevat als een Function Declaration, terwijl een functie met naam een Function Expression kan zijn.