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

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes
Trailing comma in parametersChrome Full support 58Edge No support NoFirefox Full support 52IE No support NoOpera Full support 45Safari No support NoWebView Android Full support 58Chrome Android Full support 58Edge Mobile No support NoFirefox Android Full support 52Opera Android Full support 45Safari iOS No support NoSamsung Internet Android Full support 7.0nodejs Full support 8.0.0

Legend

Full support  
Full support
No support  
No support

Veja também

Etiquetas do documento e colaboradores

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