--- 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 palavara-chave function
pode ser usada para definir uma função dentro de uma expressão.
function [name]([param1[, param2[, ..., paramN]]]) { statements }
name
paramN
statements
Uma 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. |
A tabela de compatibilidade nesta página é gerada por dados estruturados.
Se você quiser contribuir para com os dados, por favor, veja https://github.com/mdn/browser-compat-data e nos mande um pull request.
{{CompatibilityTable}}
{{Compat("javascript.operators.function")}}