web前端:ES6 - 基础学习(13): Iterator(迭代器) 和 for...of 循环

    作者: 帝鸿琬琰 更新于: 2020-03-09 23:02:25

    Web开发

      迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。从定义可见,迭代器模式是为容器而生。很明显,对容器对象的访问必然涉及到遍历算法。你可以一股脑的将遍历方法塞到容器对象中去;或者根本不去提供什么遍历算法,让使用容器的人自己去实现去吧。这两种情况好像都能够解决问题。

      Iterator

      Iterator是ES6引入的一种新的遍历机制,迭代器有两个核心概念:

      1、迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator的方法来实现。

      2、迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。

      迭代过程

      迭代的过程如下:

      1、通过Symbol.iterator创建一个迭代器,指向当前数据结构的起始位置

      2、随后通过next方法进行向下迭代指向下一个位置,next方法会返回当前位置的对象,对象包含了value和done两个属性,value是当前属性的值,done用于判断是否遍历结束

      3、当done为true时则遍历结束

      迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次"迭代",而每一次迭代得到的结果会作为下一次迭代的初始值。

课课家教育

未登录