码迷,mamicode.com
首页 > 其他好文 > 详细

对象添加迭代器

时间:2019-05-11 18:24:20      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:rand   family   定制   desc   协议   技术   soft   默认   意思   

 

 

可迭代协议允许 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)则没有。

对象添加迭代器

标签:rand   family   定制   desc   协议   技术   soft   默认   意思   

原文地址:https://www.cnblogs.com/sea-breeze/p/10849367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!