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 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" 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® 2026 Language Specification> # sec-generator-function-definitions> |