Función con nombre, pero Expression de Función en JavaScript
Ahora hagamos una función que tendrá un nombre, pero será una Expression de Función, porque participa en una expresión:
+function func() {
console.log('!');
}
Curiosamente, no podremos acceder a nuestra función
por su nombre func, esto
producirá un error:
+function func() {
console.log('!');
}
func(); //!! dará un error
Para poder llamar a nuestra función, debemos asignarla a alguna variable:
let test = function func() {
console.log('!');
};
test(); // mostrará '!'
De nuevo: una función que es una expresión funcional no puede ser llamada por su nombre. Dicha función solo puede ser invocada utilizando la variable en la que fue asignada esta función.
Sin embargo, una expresión funcional puede tener un nombre de función, esto será sintácticamente correcto. Analizaremos para qué se necesita esto en las próximas lecciones.
Resumamos: las funciones son Function Declaration o Function Expression no porque tengan nombre o no, sino porque son participantes de expresiones o no lo son.
Como viste anteriormente, una función sin nombre puede ser interpretada como una Function Declaration, y una función con nombre puede ser una Function Expression.