迭代器模式的定义:<code>提供一个方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示</code>。
简单来说就是实现对一个对象的迭代。。。
这在ES6里已经有了原生的支持:<code>[Symbol.iterator]</code>,该方法在所有的数组、Map、Set中都已经有了实现,所以可以通过<code>for...of...</code>来迭代遍历这些对象;但是对象里是没有内置该方法的,可以通过手动添加迭代器来实现对象的迭代,原理是获得对象中的所有key,然后挨个查找key对应的value。
以下是实现一个自带迭代器的类的代码:
就是通过一个外部对象来访问一个对象的属性,方法与上面的大同小异就不多写了。