We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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

Compatibilidade de navegadores

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!

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,