迭代器协议定义了一种标准的方式来产生一个有限或无限序列的值,并且当所有的值都已经被迭代后,就会有一个默认的返回值。
当一个对象只有满足下述条件才会被认为是一个迭代器:它实现了一个 next()
的方法并且拥有特殊含义。
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