Funktion med navn, men Function Expression i JavaScript
Lad os nu lave en funktion, som vil have et navn, men samtidig vil være en Function Expression, fordi den deltager i et udtryk:
+function func() {
console.log('!');
}
Interessant nok, kan vi ikke
tilgå vores funktion via navnet func, dette vil
resultere i en fejl:
+function func() {
console.log('!');
}
func(); //!! vil give en fejl
For at kunne kalde vores funktion, skal den tildeles en variabel:
let test = function func() {
console.log('!');
};
test(); // vil udskrive '!'
Igen: en funktion, der er et funktionelt udtryk, kan ikke kaldes via dens navn. Sådan en funktion kan kun kaldes ved at bruge variablen, som funktionen blev gemt i.
Men ikke desto mindre kan et funktionelt udtryk godt have et funktionsnavn, dette vil være syntaktisk korrekt. Hvorfor dette er nyttigt, vil vi undersøge i de følgende lektioner.
Lad os opsummere: funktioner er enten Function Declaration eller Function Expression, ikke fordi de har et navn eller ikke har et navn, men fordi de er del af udtryk eller ikke er det.
Som du så ovenfor, kan en funktion uden navn blive opfattet som en Function Declaration, og en funktion med navn kan være en Function Expression.