重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了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) } }
// map class iterator2 implements IteratorInterface { index: number dataStorage: Mapconstructor() { 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实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注创新互联行业资讯频道。