标签:隐藏 iterator 代码 技术分享 遍历数组 values back function 循环结构
Symbol.iterator 为每一个对象定义了默认的迭代器。该迭代器可以被 for...of
循环结构使用。
--描述
当需要迭代一个对象的时候(比如在 for...of
循环的开始时),它的 @@iterator
方法就会被调用一次(0 个参数),同时返回的迭代器将被用来获取被迭代出来的值。
一些内建类型拥有默认的迭代器行为,其他类型(如 Object
)则没有。下表中的内建类型拥有默认的@@iterator
方法:
Array.prototype[@@iterator]()
TypedArray.prototype[@@iterator]()
String.prototype[@@iterator]()
Map.prototype[@@iterator]()
Set.prototype[@@iterator]()
--例如数组
var arr = ["javascript","c#","php","node"]; for(var value of arr){ console.log(value); }
或者以另外一种形式读取
var newarr = arr[Symbol.iterator](); newarr.next(); newarr.next(); newarr.next(); newarr.next(); newarr.next();
--作用
另外值得一提的是,生成器也是按照迭代器的原理进行封装的,也就是说生成器就是迭代器!
--
标签:隐藏 iterator 代码 技术分享 遍历数组 values back function 循环结构
原文地址:http://www.cnblogs.com/lmyt/p/7357791.html