Funktion med namn, men Function Expression i JavaScript
Låt oss nu skapa en funktion som kommer att ha ett namn, men samtidigt vara en Function Expression, eftersom den deltar i ett uttryck:
+function func() {
console.log('!');
}
Intressant nog kommer vi inte att kunna
komma åt vår funktion med namnet func,
detta kommer att leda till ett fel:
+function func() {
console.log('!');
}
func(); //!! kommer att ge ett fel
För att kunna anropa vår funktion måste den tilldelas någon variabel:
let test = function func() {
console.log('!');
};
test(); // kommer att visa '!'
Återigen: en funktion som är ett funktionellt uttryck kan inte anropas med dess namn. En sådan funktion kan bara anropas med hjälp av variabeln som funktionen tilldelades till.
Men ändå kan ett funktionellt uttryck ha ett funktionsnamn, det kommer att vara syntaktiskt korrekt. Varför detta behövs kommer vi att undersöka i de följande lektionerna.
Låt oss sammanfatta: funktioner är Function Declaration eller Function Expression inte på grund av att de har ett namn eller inte, utan på grund av att de är deltagare i uttryck eller inte.
Som du såg ovan kan en funktion utan namn uppfattas som en Function Declaration, medan en funktion med namn kan vara en Function Expression.