千家信息网

JavaScript设计模型Iterator实例分析

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍了JavaScript设计模型Iterator实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript设计模型Iterator实例分析文
千家信息网最后更新 2025年02月03日JavaScript设计模型Iterator实例分析

这篇文章主要介绍了JavaScript设计模型Iterator实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript设计模型Iterator实例分析文章都会有所收获,下面我们一起来看看吧。

Iterator最主要的东西就是两个:hasNext、next。要让Client知道是否还有下一个,和切换到下一个!

定义Interface

interface IteratorInterface {  index: number  dataStorage: any  hasNext(): boolean  next(): any  addItem(item: any): void}

实作介面

下面的范例我将会使用Map、Array这两个常见的介面实作。

class iterator1 implements IteratorInterface {  index: number  dataStorage: any[]  constructor() {    this.index = 0    this.dataStorage = []  }  hasNext(): boolean {    return this.dataStorage.length > this.index  }  next(): any {    return this.dataStorage[this.index ++]  }  addItem(item: any): void {    this.dataStorage.push(item)  }}
// mapclass iterator2 implements IteratorInterface {  index: number  dataStorage: Map  constructor() {    this.index = 0    this.dataStorage = new Map()  }  hasNext(): boolean {    return this.dataStorage.get(this.index) != undefined  }  next(): any {    return this.dataStorage.get(this.index ++)  }  addItem(item: any): void {    this.dataStorage.set(this.dataStorage.size, item)  }}

Client

我没有实作一个Client,所以我是直接new一个类别出来直接使用!

const i = new iterator1()i.addItem(123)i.addItem(456)i.addItem('dolphin')while(i.hasNext()){  console.log(i.next())}console.log(`====================`)const i2 = new iterator2()i2.addItem(123)i2.addItem(456)i2.addItem('dolphin')while(i2.hasNext()){  console.log(i2.next())}

关于"JavaScript设计模型Iterator实例分析"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"JavaScript设计模型Iterator实例分析"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0