Funções JavaScript são funções de primeira classe, o que significa que funções e objetos são tratados como a mesma coisa. As funções podem ser armazenadas como uma variável dentro de um objeto ou matriz, assim como podem ser passadas como argumento ou retornadas por outra função. Isso torna a função "cidadãos de primeira classe em JavaScript"
O JavaScript usa sintaxe de notação literal, o que dificulta a compreensão completa do fato de que nas funções JavaScript são objetos.
Por exemplo..
var youObj1 = new Object();
// or
var youObj1 = {};
ambas as declinações são equivalentes. Usandonew , estamos chamando a função construtora de um Objeto. Também usando {}(atalho JavaScript chamado literals) estamos chamando a função de construção de um Object. {}é apenas uma representação mais curta para instanciar o construtor.
A maioria dos idiomas usa new palavras-chave para criar um objeto, então vamos criar um objeto JavaScript.
var myFunction = new Function("a", "b", 'return a_b');
Como você vê, criamos um nome de objeto função de .
Criando a mesma função de nome de objeto usando a expressão da função JavaScript.
var myFunction = function myFunction(a,b) {
return a+b;
}
Aqui vamos nós, apenas criamos uma função de nome de objeto.