MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-dev-survey

A palavra-chave function* pode ser usada para definir uma função generator dentro de uma expressão.

Sintaxe

function* [nome]([param1[, param2[, ..., paramN]]]) {
    declarações
}
nome
O nome da função. Pode ser omitido, no caso da função ser anônima. O nome é local apenas para o corpo da função.
paramN
O nome de um argumento para ser passado para a função. Uma função pode ter até 255 argumentos.
declarações
As declarações que compõem o corpo da função.

Descrição

Uma expressão function* é muito similar e tem quase a mesma sintaxe que a declaração function*. A principal diferença entre uma expressão  function* e a declaração function* é o nome da função, que pode ser omitido em expressões function* para criar funções anônimas. Veja também o capítulo sobre funções para mais informações.

Exemplos

O exemplo a seguir define uma função generator e atribui à variável x. A função faz um yield do quadrado do seu argumento:

var x = function*(y) {
   yield y * y;
};

Especificações

Especificação Situação Comentário
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'function*' in that specification.
Padrão Definição inicial.
ECMAScript Latest Draft (ECMA-262)
The definition of 'function*' in that specification.
Padrão em tempo real  

Compatibilidade de navegadores

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) 26.0 (26.0) ? ? 10
yield* (Yes) ? 27.0 (27.0) ? ? 10
Trailing comma in parameters ? ? 52.0 (52.0) ? ? ?
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? (Yes) (Yes) 26.0 (26.0) ? ? 10
yield* ? (Yes) ? 27.0 (27.0) ? ? 10
Trailing comma in parameters ? ? ? 52.0 (52.0) ? ? ? ?

Veja também

Etiquetas do documento e colaboradores

 Colaboradores desta página: alefesouza
 Última atualização por: alefesouza,