Existen dos maneras de declarar funciones en javascript:
Funciones nombradas: son aquellas funciones que reciben un nombre en su declaración.
function foo(){};
Funciones por expresión: su nombre es opcional en su declaración, en caso de no tenerlo, son también llamadas funciones anónimas.
var foo = function(){};
var bar = function other(){};
console.log(foo.name); // foo
console.log(bar.name); // other
Ejemplo:
function foo() {
console.log(this);
};
var anFn = function(){
console.log(this);
};
var bar = {
foo: anFn
};
Los resultados de ejecución serían:
foo(); // Window
bar.foo(); // Object
anFn(); // Window
Las funciones anónimas comúnmente son utilizadas:
- Dentro de objetos literales (métodos).
- Nuevas funciones añadidas a prototype.
- Como funciones autoejecutables (con la finalidad de mantener el alcance separado).