https://www.cnblogs.com/sker/p/5520518.html
1、iterator接口的手动实现。
var it = makeIterator(['a', 'b']);
it.next() // { value: "a", done: false }
it.next() // { value: "b", done: false }
it.next() // { value: undefined, done: true }
function makeIterator(array) {
var nextIndex = 0;
return {
next: function() {
return nextIndex < array.length ?
{value: array[nextIndex++], done: false} :
{value: undefined, done: true};
}
};
}
2、将iterator接口部署到指定的数据结构上,可以使用for of去循环遍历,如数组、字符串、arguments、set容器、map容器
3、当使用for…of遍历某一个数据结构的时候,首先去找symbol.iterator,找到了就去遍历,没有找到就不能遍历。
4、使用三点运算符、结构赋值就默认去调用iterator接口。