ES6 里的Iterator
并不是一种新的语法或是新的内置对象,而是一种协议(protocl),所有遵循了这个协议的对象都可以称之为“迭代器对象”。
Symbol.iterator
属性上 —— iterable protocol (可迭代协议),也就是说,对象必须包含Symbol.iterator
方法。此外,并且该方法返回一个符合 iterator protocol(迭代器协议)规定的对象 。该对象包含 1 个next()
方法,该方法返回一个对象 ,对象包含以下两个属性:Iterator
接口的数据结构如下:for...of
语句...
)...
)也会调用默认的 Iterator 接口。yield*
语法yield*
后面跟的是一个可遍历的结构,它会调用该结构的遍历器接口