--- title: expresión function* slug: Web/JavaScript/Reference/Operators/function* tags: - ECMAScript 2015 - Expresión Primaria - Function - Iterator - JavaScript - Operator translation_of: Web/JavaScript/Reference/Operators/function* original_slug: Web/JavaScript/Referencia/Operadores/function* ---
La palabra clave function*
puede ser utilizada para definir una función generadora en una expresión.
El código fuente de este ejemplo interactivo se encuentra almacenado en un repositorio GitHub. Si le gustaría contribuir al proyecto de ejemplos interactivos, por favor clone https://github.com/mdn/interactive-examples y envíenos un pull request.
function* [nombre]([param1[, param2[, ..., paramN]]]) { sentencias }
nombre
paramN
sentencias
Una expresión function*
es muy similar y tiene casi la misma sintaxis que una {{jsxref('Statements/function*', 'function* statement')}}. La principal diferencia entre una expresión function*
y una sentencia function*
es el nombre de la función, que en expresiones function*
puede ser omitido para creaar funciones generadoras anónimas. Para más información vea también el capítulo acerca de funciones.
El siguiente ejemplo define una función generadora sin nombre y la asigna a x
. La función produce el cuadrado de su argumento:
var x = function*(y) { yield y * y; };
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('ES2015', '#', 'function*')}} | {{Spec2('ES2015')}} | Definición Inicial. |
{{SpecName('ESDraft', '#', 'function*')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.operators.function_star")}}