Expressão de função (function expression)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
A palavra-chave function
pode ser usada para definir uma função dentro de uma expressão.
Sintaxe
function [name]([param1[, param2[, ..., paramN]]]) { statements }
Parâmetros
name
-
O nome da função. Pode ser omitido, neste caso a função será anônima. O nome só é local em relação ao corpo da função.
paramN
-
O nome de um argumento a ser passado para a função.
statements
-
As declarações que compreendem o corpo da função.
Descrição
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.
Exemplos
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;
};
Expressão de função nomeada
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ções
Specification |
---|
ECMAScript Language Specification # sec-function-definitions |
Compatibilidade com navegadores
BCD tables only load in the browser
Veja também
Funções e Escopos de Funções
Função
function statement
function* statement
function* expression
GeneratorFunction
VersãoCompatívelDesconhecidaVersãoCompatívelDesconhecida