首页 > 其他 > 详细

迭代器协议:实现自定义迭代器

时间:2019-05-11 18:27:49      阅读:122      评论:0      收藏:0      [点我收藏+]

 

迭代器协议定义了一种标准的方式来产生一个有限或无限序列的值,并且当所有的值都已经被迭代后,就会有一个默认的返回值。

当一个对象只有满足下述条件才会被认为是一个迭代器:它实现了一个 next() 的方法并且拥有特殊含义。

MDN 迭代器协议 

 

let fridge = { name: "卡萨帝冰箱", color: "白色", brand: "海尔" };
fridge[Symbol.iterator] = () => {
  let keys = Object.keys(fridge);
  return {
    next: () => {
      let attr = keys.shift();
      return {
        done: attr == null,
        value: fridge[attr]
      };
    }
  };
};

for (let attr of fridge) {
  console.log(attr);
}

let desc = [...fridge];
console.log(desc);

 

技术分享图片

 

迭代器协议:实现自定义迭代器

原文:https://www.cnblogs.com/sea-breeze/p/10849479.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!