--- title: Expressão function* slug: Web/JavaScript/Reference/Operators/function* translation_of: Web/JavaScript/Reference/Operators/function* ---
A palavra-chave function*
pode ser usada para definir uma função generator dentro de uma expressão.
function* [nome]([param1[, param2[, ..., paramN]]]) { declarações }
nome
paramN
declarações
Uma expressão function*
é muito similar e tem quase a mesma sintaxe que a {{jsxref('Statements/function*', '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.
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ção | Situação | Comentário |
---|---|---|
{{SpecName('ES2015', '#', 'function*')}} | {{Spec2('ES2015')}} | Definição inicial. |
{{SpecName('ESDraft', '#', 'function*')}} | {{Spec2('ESDraft')}} |
{{CompatibilityTable}}
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("26.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatSafari("10")}} |
yield* |
{{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop("27.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatSafari("10")}} |
Trailing comma in parameters | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop("52.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | |
---|---|---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("26.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatSafari("10")}} | |
yield* |
{{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("27.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatSafari("10")}} | |
Trailing comma in parameters | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("52.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |