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:

js
var x = function* (y) {
  yield y * y;
};

Especificaciones

Specification
ECMAScript® 2025 Language Specification
# sec-generator-function-definitions

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
function* expression
Trailing comma in parameters

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Vea también