Benannte Funktion, aber Function Expression in JavaScript
Lassen Sie uns nun eine Funktion erstellen, die einen Namen haben wird, aber dennoch eine Function Expression ist, weil sie an einem Ausdruck teilnimmt:
+function func() {
console.log('!');
}
Interessant ist, dass wir uns unter dem Namen func nicht
an unsere Funktion wenden können; dies wird
zu einem Fehler führen:
+function func() {
console.log('!');
}
func(); //!! wird einen Fehler ausgeben
Um in der Lage zu sein, unsere Funktion aufzurufen, muss sie einer Variable zugewiesen werden:
let test = function func() {
console.log('!');
};
test(); // gibt '!' aus
Noch einmal: Eine Funktion, die ein funktionaler Ausdruck ist, kann nicht über ihren Namen aufgerufen werden. Eine solche Funktion kann nur mit Hilfe der Variable aufgerufen werden, in die diese Funktion geschrieben wurde.
Dennoch kann der funktionale Ausdruck einen Funktionsnamen haben, das ist syntaktisch korrekt. Wofür das nützlich ist, werden wir in den folgenden Lektionen besprechen.
Fassen wir zusammen: Funktionen sind Function Declaration oder Function Expression nicht deshalb, weil sie einen Namen haben oder nicht, sondern deshalb, weil sie Teil von Ausdrücken sind oder nicht.
Wie Sie oben gesehen haben, kann eine Funktion ohne Namen als Function Declaration aufgefasst werden, und eine Funktion mit Namen kann eine Function Expression sein.