Expressão function*

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

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:

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

Especificações

Specification
ECMAScript® 2025 Language Specification
# sec-generator-function-definitions

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
function* expression
Trailing comma in parameters

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também