Symbol.iterator

El s铆mbolo Symbol.iterator especifica al iterador por defecto de un objeto. Es utilizado por el bucle for.

Atributos de la propiedad Symbol.iterator
Sobrescribir No
Numerable No
Configurable No

Descripci贸n

En cualquier situaci贸n donde se necesita iterar un objeto (por ejemplo al inicio de un bucle for..of), su m茅todo @@iterator es invocado sin argumentos, y el iterador regresado es utilizador para obtener los valores a iterar.

Algunos tipos integrados cuentan con un comportamiento de iterar por defecto, mientras que otros tipos (como Object) no. Los tipos integrados con un m茅todo @@iterator son:

Ver Protocolos de iteraci贸n para m谩s informaci贸n.

Ejemplos

Iterables definidos por el usuario

Podemos definir nuestros propios iterables de la siguiente forma:

var myIterable = {}
myIterable[Symbol.iterator] = function* () {
    yield 1;
    yield 2;
    yield 3;
};
[...myIterable] // [1, 2, 3]

Iterables mal formados

Si un m茅todo iterador @@iterator no devuelve un objeto iterador, es un iterable mal formado. Usarlo como tal es probable que genere excepciones en tiempo de ejecuci贸n, o comportamientos inesperados.

var nonWellFormedIterable = {}
nonWellFormedIterable[Symbol.iterator] = () => 1
[...nonWellFormedIterable] // TypeError: [] is not a function

Especificaciones

Compatibilidad en navegadores

BCD tables only load in the browser

Temas relacionados