Iterator

Iterator 遍历器

一种接口,为不同的数据结构提供统一的访问机制,任何数据接口只要部署Interator接口,就可以完成遍历操作

遍历:依次处理该数据结构的所有成员

  • 为各种数据结构,提供一个统一的、简便的访问接口

  • 使得数据结构的成员能够按某种次序排列

  • ES6创造了一种新的遍历命令 for…of循环,Interator接口主要供for…of消费

遍历过程如下:

1、创建一个指针对象,指向当前数据结构的起始位置。遍历器对象本质上就是一个指针对象。

2、第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员。

3、第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。

4、不断调用指针对象的next方法,直到它指向数据结构的结束位置。

每一次调用next方法,都会返回数据结构的当前成员的信息。一个包含value和done两个属性的对象。

Iterable Iterator IterationResult

一种数据结构只要部署了Interator接口,就称这种数据结构是“可遍历的( Iterable )”

1
2
3
4
5
6
7
8
9
10
11
12
[Symbol.iterator]:function(){
return {
next: functions(){
return {
value: 1,
done: true
}
}
}
}
// iterator接口部署在数据结构的Symbol.iterator属性上
// 属性名 Symbol.iterator是一个表达式(所以要用方括号表示),返回Symbol对象的iterator属性

原生具备 Iterator接口的数据结构:

# ES6

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×