前端开发那些事儿让前端飞Web前端之路

ES6 Iterator

2022-05-19  本文已影响0人  嘻哈章鱼小丸子
是什么

一种接口,为各种不同的数据结构提供统一的访问机制。
任何数据结构只要部署Iterator 接口,就可以完成遍历操作(即依次处理该数据结构的所有成员)。

作用
默认Iterator 接口

ES6 规定,默认的Iterator接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”(iterable)。Symbol.iterator属性本身是一个函数,就是当前数据结构默认的遍历器生成函数。执行这个函数,就会返回一个遍历器。至于属性名Symbol.iterator,它是一个表达式,返回Symbol对象的iterator属性,这是一个预定义好的、类型为 Symbol 的特殊值,所以要放在方括号内。

特征
最简单实现

使用 Generator 函数,只要用 yield 命令给出每一步的返回值即可。

let obj = {
  * [Symbol.iterator]() {
    yield 'hello';
    yield 'world';
  }
};

for (let x of obj) {
  console.log(x);
}
内置类型
场景
参考文章

Symbol.iterator
ES6 入门 Iterator 和 for...of 循环

上一篇 下一篇

猜你喜欢

热点阅读