Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
expresión function*
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since septiembre de 2016.
La palabra clavefunction* puede ser utilizada para definir una función generadora en una expresión.
In this article
Pruébalo
const foo = function* () { yield "a"; yield "b"; yield "c";};let str = "";for (const val of foo()) { str = str + val;}console.log(str);// Expected output: "abc"Sintaxis
function* [nombre]([param1[, param2[, ..., paramN]]]) { sentencias}Parámetros
nombreNombre de la función. Puede ser omitido, en cuyo caso la función esanínima. El nombre sólo es local al cuerpo de la función.
paramNNombre de un parámetro a ser pasado a la función. Una función puede tener hasta 255 argumentos.
sentenciasSentencias que componen el cuerpo de la función.
Descripción
Una expresiónfunction* es muy similar y tiene casi la misma sintaxis que unafunction* statement. La principal diferencia entre una expresiónfunction* y una sentenciafunction* es elnombre de la función, que en expresionesfunction* puede ser omitido para creaar funciones generadorasanónimas. Para más información vea también el capítulo acerca defunciones.
Ejemplos
El siguiente ejemplo define una función generadora sin nombre y la asigna ax. La función produce el cuadrado de su argumento:
var x = function* (y) { yield y * y;};Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-generator-function-definitions> |