可迭代对象 是一个对象,符合迭代器协议,是必须实现 @@iterator 方法,代码中我们使用Symbol.iterator访问该属性* 当一个对象变成一个可迭代对象的时候,进行某些迭代操作,比如 for…of 操作* for of 可以遍历一个可迭代对象 for of 是一个语法糖,获取的是迭代器的next代码演示
下面的代码中 创建一个迭代器对象来访问数组names
iterableObj对象就是一个可迭代对象
// 创建一个迭代器对象来访问数组
const iterableObj = { names: ['1','2','3'], //[]可计算属性 [Symbol.iterator]:function (){ let index = 0 return { next: ()=>{ if(index
原生可迭代器对象
事实上我们平时创建的很多原生对象已经实现了可迭代协议,会生成一个迭代器对象的:* String、Array、Map、Set、arguments对象、NodeList集合;* for of 方法直接遍历* 都有[Symbol.iterator]属性可迭代对象的应用
for of 扩展操作符 数组的解构* 创建一些其他对象new Map([Iterable])、new WeakMap([iterable])、new Set([iterable])、new WeakSet([iterable]);* Promise.all(iterableObj) 接受一个可迭代对象自定义类的迭代 =======