JavaScript 创建一个Iterable对象

示例

6
var myIterableObject = {};
// Iterable对象必须定义位于theSymbol.iterator键上的方法:
myIterableObject[Symbol.iterator] = function () {
  // 迭代器应返回一个Iterator对象
  return {
    // Iterator对象必须实现一个方法next()
    next: function () {
      // 下一个自身必须返回IteratorResult对象 
      if (!this.iterated) {
       this.iterated= true;
        // IteratorResult对象具有两个属性
        return {
          // 迭代是否完成,以及
          done: false,
          // 当前迭代的值
          value: 'One'
        };
      }
      return {
        // 迭代完成后,仅需要done属性
        done: true
      };
    },
    iterated: false
  };
};

for (var c of myIterableObject) {
  console.log(c); 
}

控制台输出