Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

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

If an iterable's @@iterator method does not return an iterator object, then it is a non-well-formed iterable. Using it as such is likely to result in runtime exceptions or buggy behavior:

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

Especificaciones

Especificaciób Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Symbol.iterator' en esta especificación.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
La definición de 'Symbol.iterator' en esta especificación.
Draft  

Compatibilidad en navegadores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Soporte básicoChrome Soporte completo 43Edge Soporte completo SiFirefox Soporte completo 36IE Sin soporte NoOpera Soporte completo 30Safari Soporte completo 10WebView Android Soporte completo SiChrome Android Soporte completo SiEdge Mobile Soporte completo SiFirefox Android Soporte completo 36Opera Android Soporte completo SiSafari iOS Soporte completo 10Samsung Internet Android Soporte completo Sinodejs Soporte completo 0.12

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte

Temas relacionados

Etiquetas y colaboradores del documento

Colaboradores en esta página: rderandom, DJphilomath
Última actualización por: rderandom,