10、Iterator和for...of

https://www.cnblogs.com/sker/p/5520518.html

1、iterator接口的手动实现。
在这里插入图片描述

var it = makeIterator(['a', 'b']);

it.next() // { value: "a", done: false }
it.next() // { value: "b", done: false }
it.next() // { value: undefined, done: true }

function makeIterator(array) {
  var nextIndex = 0;
  return {
    next: function() {
      return nextIndex < array.length ?
        {value: array[nextIndex++], done: false} :
        {value: undefined, done: true};
    }
  };
}

2、将iterator接口部署到指定的数据结构上,可以使用for of去循环遍历,如数组、字符串、arguments、set容器、map容器

3、当使用for…of遍历某一个数据结构的时候,首先去找symbol.iterator,找到了就去遍历,没有找到就不能遍历。
在这里插入图片描述

4、使用三点运算符、结构赋值就默认去调用iterator接口。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页