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:

js
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.

js
var math = {
  factorial: function factorial(n) {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
  },
};

Especificações

Specification
ECMAScript® 2025 Language Specification
# sec-function-definitions

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
function expression
Trailing comma in parameters

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também