Iterator(遍历器)

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