Iterator(遍历器)
遍历过程:
- 创建一个指针对象,指向当前数据结构的起始位置(遍历器对象本质上是一个只针对象)
- 第一次调用指针对象的next方法,将指针指向数据结构的第一个成员
- 第二次调用指针对象的next方法,指针指向数据结构的第二个成员
- 不断调用指针对象的next方法,直到它指向数据结构的 结束位置
模拟next()方法返回值
1 | varit=makeIterator(['a','b']); |
对于遍历器对象来说,done:false
和value:undefined
属性是可以忽略的,因此以上makeIterato
r函数可以简写成以下形式
1 | function makeIterator(array){ |
数据结构的默认Iterator接口
ES6规定,默认的Iterator接口部署在数据结构的Symbol.iterator
属性,或者说一个数据结构只要具有了Symbol.iterator
属性,就可以认为是可遍历的