ES6躬行记 笔记

ES6躬行记(18)——迭代器

要实现以下接口##

next() ,return,throw

可以用for-of保证迭代对象的正确性

例如

var str = "向𠮳";        //str.length的值为3
for (var i = 0; i < str.length; i++) {
  console.log(str[i]);
}

创建迭代对象###

普通的对象只要包含Symbol.iterator属性,并返回一个迭代器,就能摇身一变成为可迭代对象

var iterable = {
  items: ["a", "b"],
  index: 0,
  [Symbol.iterator]() {
    return this;
  },
  next() {
    var done = this.index >= this.items.length;
    return { value: this.items[this.index++], done: done };
  },
  return() {
    return { value: undefined, done: true };
  }
};

posted on 2019-04-01 11:27  老豆浆  阅读(106)  评论(0编辑  收藏  举报

导航