迭代器是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就是一个属性,就可以完成便利操作。
ES6创造了一种新的遍历命令for…of,iterator主要为for…of服务
原生具备iterator接口的数据(可以用for of遍历)
- Array
- arguments
- set
- map
- string
- typedarray
- nodelist
工作原理
Iterator 的遍历过程是这样的。
(1)创建一个指针对象,指向当前数据结构的起始位置。也就是说,遍历器对象本质上,就是一个指针对象。
(2)第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员(返回一个包含value和done属性的成员)。
(3)第二次调用指针对象的next方法,指针就指向数据结构的第二个成员。
(4)不断调用指针对象的next方法,直到它指向数据结构的结束位置。
注:for of 和for in的区别,in遍历出键名,而of则是键值
自定义遍历对象
要求利用for if 直接获取banji的人名