--- title: Expressão de função (function expression) slug: Web/JavaScript/Reference/Operators/function tags: - Expressões Primárias - Função - Internet - JavaScript - Operador - Rede - Web translation_of: Web/JavaScript/Reference/Operators/function ---
A palavra-chave function pode ser usada para definir uma função dentro de uma expressão.
function [name]([param1[, param2[, ..., paramN]]]) {
statements
}
nameparamNstatementsUma expressão de função (function expression) é muito similar e tem quase a mesma sintaxe de uma declaração de função (veja function statement para mais detalhes). A principal diferença entre uma expressão de função e a declaração de uma função é o nome da função (function name), o qual pode ser omitido em expressões de funções para criar funções anônimas. Veja ainda o capítulo sobre funções para maiores informações.
O exemplo a seguir define uma função sem nome e a atribui a x. A função retorna o quadrado de seu argumento:
var x = function(y) {
return y * y;
};
Se você quer se referir à função atual dentro do corpo da função, você terá que criar uma expressão de função nomeada. Este nome será local apenas para o corpo (escopo) da função. Isto ainda evita o uso da propriedade não-padronizada arguments.callee.
var math = {
'factorial': function factorial(n) {
if (n <= 1)
return 1;
return n * factorial(n - 1);
}
};
| Especificação | Status | Comentários |
|---|---|---|
| {{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}} | {{Spec2('ESDraft')}} | |
| {{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}} | {{Spec2('ES6')}} | |
| {{SpecName('ES5.1', '#sec-13', 'Function definition')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES3', '#sec-13', 'Function definition')}} | {{Spec2('ES3')}} | Initial definition. Implemented in JavaScript 1.5. |
{{CompatibilityTable}}
{{Compat("javascript.operators.function")}}