Las funciones de JavaScript son funciones de primera clase, lo que significa que las funciones y los objetos se tratan como lo mismo. Las funciones se pueden almacenar como una variable dentro de un objeto o una matriz, así como se puede pasar como un argumento o ser devuelto por otra función. Eso hace que la función sea "ciudadanos de primera clase en JavaScript"
JavaScript utiliza la sintaxis de notación literal, lo que dificulta comprender completamente el hecho de que en JavaScript las funciones son objetos.
Por ejemplo..
var youObj1 = new Object();
// or
var youObj1 = {};
ambas declinaciones son equivalentes. Al usar new, estamos llamando a la función constructora de un objeto. También mediante el uso de {}(acceso directo de JavaScript llamado literales) estamos llamando a la función de construcción de un objeto. {}es solo una representación más corta para crear instancias del constructor.
La mayoría de los idiomas usan newpalabras clave para crear un objeto, por lo tanto, creemos un objeto JavaScript.
var myFunction = new Function("a", "b", 'return a_b');
Como puede ver, creamos una función de nombre de objeto .
Crear la misma función de nombre de objeto usando la expresión de función de JavaScript.
var myFunction = function myFunction(a,b) {
return a+b;
}
Aquí vamos, acabamos de crear una función de nombre de objeto.