每当一个对象需要被迭代时(例如在for…of循环的开头),它的@@iterator方法被调用而没有参数,并且返回的迭代器用于获取要迭代的值。
某些内置类型具有默认的迭代行为,而其他类型(例如Object)则没有。带有@@iterator方法的内置类型是:
Array.prototype@@iterator
TypedArray.prototype@@iterator
String.prototype@@iterator
Map.prototype@@iterator
Set.prototype@@iterator