1. 程式人生 > >叠代器協議:實現自定義叠代器

叠代器協議:實現自定義叠代器

don info 無限 擁有 png script https ava 產生

叠代器協議定義了一種標準的方式來產生一個有限或無限序列的值,並且當所有的值都已經被叠代後,就會有一個默認的返回值。

當一個對象只有滿足下述條件才會被認為是一個叠代器:它實現了一個 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);

技術分享圖片

叠代器協議:實現自定義叠代器