Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Sentencias
  5. function*

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

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 declaraciónfunction* (la palabra clavefunction seguida de un asterisco) define unafunción generadora, que devuelve un objetoGenerator.

También puedes definir funciones generadoras usando el constructorGeneratorFunction y unafunction* expression.

Sintaxis

function* nombre([param[, param[, ... param]]]) {   instrucciones}
nombre

El nombre de la función.

param

El nombre de los argumentos que se le van a pasar a la función. Una función puede tener hasta 255 argumentos.

instrucciones

Las instrucciones que componen el cuerpo de la función.

Descripción

Los generadores son funciones de las que se puede salir y volver a entrar. Su contexto (asociación de variables) será conservado entre las reentradas.

La llamada a una función generadora no ejecuta su cuerpo inmediatamente; se devuelve un objetoiterador para la función en su lugar. Cuando el metodonext() del iterador es llamado , el cuerpo de la función generadora es ejecutado hasta la primera expresiónyield, la cual especifica el valor que será retornado por el iterador o con,yield*, delega a otra función generadora. El métodonext() retorna un objeto con una propiedadvalue que contiene el valor bajo el operador yield y una propiedaddone que indica, con un booleano, si la función generadora ha hecho yield al último valor.

Ejemplos

Ejemplo simple

js
function* idMaker() {  var index = 0;  while (index < 3) yield index++;}var gen = idMaker();console.log(gen.next().value); // 0console.log(gen.next().value); // 1console.log(gen.next().value); // 2console.log(gen.next().value); // undefined// ...

Ejemplo con yield*

js
function* anotherGenerator(i) {  yield i + 1;  yield i + 2;  yield i + 3;}function* generator(i) {  yield i;  yield* anotherGenerator(i);  yield i + 10;}var gen = generator(10);console.log(gen.next().value); // 10console.log(gen.next().value); // 11console.log(gen.next().value); // 12console.log(gen.next().value); // 13console.log(gen.next().value); // 20

Especificaciones

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

Compatibilidad con navegadores

Ver también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp