
En JavaScript hay dos maneras de crear una función: la expresión de función y la declaración de función. La primera se guarda dentro de una variable, la segunda se puede llamar desde cualquier punto de tu código. Seguramente estés acostumbrado a ver declaraciones de función: es lo que yo más conocía, pero merece la pena saber que existe otra forma de hacerlo.
Este artículo puede recibir actualizaciones
Declaración de función
A diferencia de una expresión de función, una función creada con una declaración se puede llamar incluso antes de declararla: el intérprete busca las variables y las declaraciones de función antes de recorrer el resto del script. Eso sí, para llamarla más adelante en tu código tienes que darle un nombre.
function addition(a, b) {
return a + b;
};
var calcul= addition(2, 5) ;Expresión de función
La expresión de función es una función que se crea, se almacena y se trata como una variable. Normalmente no tiene nombre, y por eso hablamos de funciones anónimas. La función queda guardada en una variable y se llama como cualquier otra. Ahora bien, solo se procesa cuando el intérprete del navegador lee la declaración: no puedes llamarla antes de ese punto, y cualquier código que aparezca hasta ahí puede modificar lo que ocurre dentro de ella.
var addition = function(a, b) {
return a + b;
};
var calcul = addition(2, 5) ;Immediately-Invoked Function Expression
Conocida habitualmente como IIFE, aísla todas las variables declaradas dentro de la función anónima frente a las de otros scripts que pudieran usar el mismo nombre. Esto se debe a el alcance de las variables, el scope. Aquí tienes un ejemplo de IIFE.
var addition = (function(){
var a = 10;
var b = 20;
return a + b;
}());- Los paréntesis que rodean la función garantizan que se trate como una expresión.
- Los dos paréntesis del final,
(), le dicen al intérprete que la ejecute de inmediato.
Se usa sobre todo al empezar un script nuevo, para aislar todo nuestro código.
¿Cuándo usar expresiones de función anónimas?
Sirven para código que solo debe ejecutarse una vez, en lugar de ser llamado varias veces desde otras partes del script. Puedes usar una expresión de función anónima:
- para evitar conflictos entre dos scripts que usen los mismos nombres de variable que el nuestro,
- como argumento al llamar a una función (para calcular su valor);
- para ejecutar una tarea cuando se produce un evento,
- para asignar el valor de una propiedad a un objeto.
···


