Iterator是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口,就可以完成遍历操作。
Iterator的作用:
1、为各种数据结构,提供一个统一的、简便的访问接口;
2、使得数据结构的成员能够按某种次序排列;
3、ES6 创造了一种新的遍历命令for...of
循环,Iterator 接口主要供for...of
消费。
简单的例子
let a = 0 let obj = { [Symbol.iterator]: function () { return { next: function () { a++ return a < 5 ? { value: a } : { value: a, done: true } } } } } let b = [...obj] console.log(b) Array(4) [ 1, 2, 3, 4 ]
用Generator函数更简便
let obj = { [Symbol.iterator]: function * () { yield *[1, 2, 3, 4] } } let b = [...obj] console.log(b) Array(4) [ 1, 2, 3, 4 ]
原文:https://www.cnblogs.com/allenzhang-920/p/13463994.html