Funksjon med navn, men Function Expression i JavaScript
La oss nå lage en funksjon som vil ha et navn, men samtidig vil være Function Expression, fordi den deltar i et uttrykk:
+function func() {
console.log('!');
}
Interessant nok, ved navnet func vil vi ikke
kunne få tilgang til funksjonen vår, dette vil
føre til en feil:
+function func() {
console.log('!');
}
func(); //!! vil gi en feil
For å kunne kalle funksjonen vår, må den tilordnes til en variabel:
let test = function func() {
console.log('!');
};
test(); // vil skrive ut '!'
Igjen: en funksjon som er et funksjonelt uttrykk kan ikke kalles ved sitt navn. En slik funksjon kan bare kalles ved å bruke variabelen som funksjonen ble skrevet til.
Likevel kan et funksjonelt uttrykk ha et funksjonsnavn, dette vil være syntaktisk korrekt. Hvorfor dette er nyttig, vil vi se nærmere på i de følgende leksjonene.
La oss oppsummere: funksjoner er Function Declaration eller Function Expression ikke fordi de har et navn eller ikke har det, men fordi de er deltakere i uttrykk eller ikke er det.
Som du så ovenfor, kan en funksjon uten navn bli oppfattet som en Function Declaration, og en funksjon med navn kan være en Function Expression.