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 September 2016.
La palabra clave function*
puede ser utilizada para definir una función generadora en una expresión.
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"
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.
Sintaxis
function* [nombre]([param1[, param2[, ..., paramN]]]) { sentencias }
Parámetros
nombre
-
Nombre de la función. Puede ser omitido, en cuyo caso la función es anínima. El nombre sólo es local al cuerpo de la función.
paramN
-
Nombre de un parámetro a ser pasado a la función. Una función puede tener hasta 255 argumentos.
sentencias
-
Sentencias que componen el cuerpo de la función.
Descripción
Una expresión function*
es muy similar y tiene casi la misma sintaxis que una 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.
Ejemplos
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;
};
Especificaciones
Specification |
---|
ECMAScript® 2025 Language Specification # sec-generator-function-definitions |
Compatibilidad con navegadores
BCD tables only load in the browser