js设计模式——4.迭代器模式
代码演示
/*js设计模式——迭代器模式*/
class Iterator {
constructor(container) {
this.list = container.list;
this.index = 0;
}
// next 判断下一项还有则继续追加
next() {
if (this.hasNext()) {
return this.list[this.index++];
}
return null;
}
// hasNext 判断是否还有下一项
hasNext() {
if (this.index >= this.list.length) {
return false;
}
return true;
}
}
class Container {
constructor(list) {
this.list = list;
}
// 生成遍历器
getIterator() {
return new Iterator(this);
}
}
let arr = [1, 2, 3, 4, 5, 6];
let container = new Container(arr);
let iterator = container.getIterator()
while(iterator.hasNext()){
console.log(iterator.next())
}