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
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!
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) | ? | ? | ? | ? |