网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JavaScript设计模型Iterator实例解析是怎样的-创新互联

这期内容当中小编将会给大家带来有关JavaScript设计模型Iterator实例解析是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

成都创新互联公司服务项目包括新乡县网站建设、新乡县网站制作、新乡县网页制作以及新乡县网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,新乡县网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到新乡县省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

Iterator Pattern是一个很重要也很简单的Pattern:迭代器!我们可以提供一个统一入口的迭代器,Client只需要知道有哪些方法,或是有哪些Concrete 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())}

结论

会发现Iterator 1号 2号的结果都是一样的!他们都只需要让Client知道有hasNext、next就好,底层的实作不需要让他们知道!

上述就是小编为大家分享的JavaScript设计模型Iterator实例解析是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


文章名称:JavaScript设计模型Iterator实例解析是怎样的-创新互联
当前地址:http://bjjierui.cn/article/ceesss.html

其他资讯