迭代器
Iterator 的作用
为各种数据结构,提供一个统一的、简便的访问接口。
使得数据结构的成员能够按某种次序排列。
ES6提供了新的遍历命令for…of循环来消费Iterator 接口。
任何数据结构只要部署 Iterator 接口,就可以完成遍历操作。
即依次处理该数据结构的所有成员。
Iterator 的遍历过程
创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。
第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。
不断调用指针对象的next方法,直到它指向数据结构的结束位置。
ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性。 一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”
例如数组的Symbol.iterator属性