Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

A palavara-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

Especificação Status Comentários
ECMAScript Latest Draft (ECMA-262)
The definition of 'Function definitions' in that specification.
Rascunho  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Function definitions' in that specification.
Padrão  
ECMAScript 5.1 (ECMA-262)
The definition of 'Function definition' in that specification.
Padrão  
ECMAScript 3rd Edition (ECMA-262)
The definition of 'Function definition' in that specification.
Padrão Initial definition. Implemented in JavaScript 1.5.

Compatibilidade de Navegador

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes1 Yes Yes Yes
Trailing comma in parameters58 No52 No45 No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes4 Yes Yes Yes
Trailing comma in parameters5858 No5245 No7.0

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: GPrimola, nadineouro, ti.marcosdias
Última atualização por: GPrimola,