概述
遍历器(Iterator)就是这样一种机制。<br>它是一种接口,为各种不同的数据结构提供统一的访问机制
作用
1、一是为各种数据结构,提供一个统一的、简便的访问接口
2、是使得数据结构的成员能够按某种次序排列
3、ES6 创造了一种新的遍历命令for...of循环,Iterator 接口主要供for...of消费
大致格式
目标对象[Symbol.iterator]属性的函数中<br>返回一个包含next方法的对象
调用 Iterator 接口的场合
1)解构赋值
let [first, ...rest] = set;
其他场合
for...of<br>Array.from()<br>Map(), Set(), WeakMap(), WeakSet()<br>Promise.all()<br>Promise.race()
Iterator 接口与 Generator 函数
Symbol.iterator方法的最简单实现<br>let myIterable = {<br> [Symbol.iterator]: function* () {<br> yield 1;<br> yield 2;<br> yield 3;<br> }<br>}<br>[...myIterable] // [1, 2, 3]<br>
遍历器对象的 return(),throw()
next方法是必须有的<br>return() 和 throw() 是可选的<br>当遍历存在提前退出break或着报错导致退出时候<br>会进入设置好的return()方法中