Nimetty funktio, mutta Function Expression JavaScriptissä
Tehdään nyt funktio, jolla on nimi, mutta on kuitenkin Function Expression, koska se osallistuu lausekkeeseen:
+function func() {
console.log('!');
}
Mielenkiintoista on, että emme pysty
viittaamaan funktioomme sen nimellä func,
se johtaa virheeseen:
+function func() {
console.log('!');
}
func(); //!! antaa virheen
Jotta voimme kutsua funktiotamme, se on annettava jollekin muuttujalle:
let test = function func() {
console.log('!');
};
test(); // tulostaa '!'
Uudestaan: funktionaalisen lausekkeen olevaa funktiota ei voida kutsua sen nimellä. Sellaista funktiota voidaan kutsua vain käyttämällä muuttujaa, johon kyseinen funktio on tallennettu.
Mutta kuitenkin, funktionaalisella lausekkeella voi olla funktion nimi, se on syntaktisesti korrektia. Miksi tällaista tarvitaan, käsittelemme seuraavissa oppitunneissa.
Yhteenveto: funktiot ovat Function Declaration tai Function Expression ei siksi, koska niillä on nimi tai ei ole, vaan siksi, että ne osallistuvat lausekkeisiin tai eivät.
Kuten yllä näit, funktio ilman nimeä voi olla Function Declaration, ja nimetty funktio voi olla Function Expression.