ES6躬行记 笔记
ES6躬行记(18)——迭代器
要实现以下接口##
next()
,return
,throw
可以用for-of保证迭代对象的正确性
例如
var str = "向𠮳"; //str.length的值为3
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
创建迭代对象###
普通的对象只要包含Symbol.iterator属性,并返回一个迭代器,就能摇身一变成为可迭代对象
var iterable = {
items: ["a", "b"],
index: 0,
[Symbol.iterator]() {
return this;
},
next() {
var done = this.index >= this.items.length;
return { value: this.items[this.index++], done: done };
},
return() {
return { value: undefined, done: true };
}
};