Nimega funktsioon, kuid funktsiooniavaldis JavaScriptis
Teeme nüüd funktsiooni, millel on nimi, kuid mis on siiski funktsiooniavaldis, kuna osaleb avaldises:
+function func() {
console.log('!');
}
Huvitav on see, et me ei saa oma funktsioonile
nime func abil ligi, see viib
veani:
+function func() {
console.log('!');
}
func(); //!! annab vea
Et saaksime oma funktsiooni välja kutsuda, tuleb see mõnda muutujasse omistada:
let test = function func() {
console.log('!');
};
test(); // väljastab '!'
Veelkord: funktsioon, mis on funktsiooniavaldis, ei saa oma nime alusel kutsuda. Sellist funktsiooni saab välja kutsuda ainult muutuja abil, millesse see funktsioon oli kirjutatud.
Kuid sellest hoolimata võib funktsiooniavaldisel olla funktsiooni nimi, see on süntaktiliselt korrektne. Milleks seda vaja on, uurime järgmistes õppetükides.
Võtame kokku: funktsioonid on Function Declaration või Function Expression mitte sellepärast, et neil on nimi või pole, vaid sellepärast, et nad osalevad avaldistes või ei osale.
Nagu eespool nägite, võib nimetu funktsioon olla tajutud kui Function Declaration, ja nimega funktsioon võib olla Function Expression.