ES新特性
Symbol: 符号,独一无二的数据
迭代器
onst obj = { //实现了可迭代接口 Iterable,约定内部必须有一个返回iterator迭代器的方法
store:[‘foo’,‘bar’,‘baz’],
[Symbol.iterator]:function () { // Iterator 实现了迭代器接口 约定内部不必有一个用于迭代的next的内部方法
let index = 0
let self = this
return {
next: function () {
const result = { //IterationResult 约定内部必须有一个value和done属性,value:当前被迭代的数据,done迭代是否结束
value: self.store[index],
done: index >= self.store.length
}
index++
return result
}
}
}
}
for (const item of obj) {
console.log('循环遍历',item);
}