对象添加迭代器
Posted sea-breeze
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象添加迭代器相关的知识,希望对你有一定的参考价值。
可迭代协议允许 javascript 对象去定义或定制它们的迭代行为, 例如(定义)在一个 for..of
结构中什么值可以被循环(得到)。
一些内置类型都是内置的可迭代类型并且有默认的迭代行为( 比如 String、Array、Map、Set), 另一些类型则不是 (比如Object
) 。
为了变成可迭代对象, 一个对象必须实现 @@iterator 方法, 意思是这个对象(或者它原型链 prototype chain 上的某个对象)必须有一个名字是 Symbol
.iterator
的属性。
let fridge = { name: "卡萨帝冰箱", color: "白色", brand: "海尔" }; fridge[Symbol.iterator] = function*() { yield this.name; yield this.color; yield this.brand; }; for(let attr of fridge){ console.log(attr); } let desc = [...fridge]; console.log(desc);
一些内置类型(String、Array、Map、Set)拥有默认的迭代器行为,其他类型(如 Object
)则没有。
以上是关于对象添加迭代器的主要内容,如果未能解决你的问题,请参考以下文章