当前位置: 首页 > news >正文

网站模板怎么用dreamweaver编辑/网站关键词优化有用吗

网站模板怎么用dreamweaver编辑,网站关键词优化有用吗,免费招聘网站建设,在网上怎么做推广定义 迭代器模式是指提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。 作用…

定义

迭代器模式是指提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。

作用

遍历一个聚合对象,这是迭代器模式的作用。

举例

该模式的例子就数不胜数了。数组遍历方法比如Array.prototype.forEach、jQuery中的$.each()等等都是迭代器。下面自己来实现一个each函数,第一个参数是数组,第二个参数是每一步的处理函数

var each = function (arr, callback) {for (var i = 0, l = arr.length; i < l; i++) {callback.call(arr[i], i, arr[i]);}
}// test
each([1,2,3], function (i ,n) {alert([i, n]);
});
复制代码

迭代器可以分为内部迭代器和外部迭代器。上面的each函数属于内部迭代器,each函数的内部已经定义好了迭代规则,完全接手了整个过程,外部只需要调用一次。内部迭代器使用起来非常方便,就调一个函数即可,这是内部迭代器的优点。但是它只能迭代一个数组,要想迭代两个数组必须改变内部函数的实现,违反了开放-封闭原则。

而外部迭代器则必须显式的请求迭代下一个元素。外部迭代器增加了一些调用的复杂度,但相对也增强了迭代器的灵活性,因为我们可以手动地控制整个迭代过程。

面试题:实现一个函数,第一次执行返回1,第二次执行返回2......这就是一个外部迭代器的案例,这道面试题也经常遇到,上菜:

var iterator = function () {var count = 1;return function () {console.log(count++);}
}// test
var output = iterator();
output();    // 1
output();    // 2
output();    // 3
......
复制代码

下面实现一个较完整的迭代器:

var Iterator = function (obj) {var current = 0;var next = function () {current += 1;};var isDone = function () {return current >= obj.length;};var getCurrItem = function () {return obj[current];};return {next: next,isDone: isDone,getCurrItem: getCurrItem,length: obj.length};
}
复制代码

从上面的迭代器实现可以看出,只要被迭代的聚合对象拥有length属性而且可以用下标访问,那么它就是迭代器。Javascript中的类数组对象也是迭代器。

倒序迭代器

顾名思义,倒序迭代器就是以倒序的方式去访问数组的每一个对象:

var reverseEach = function (arr, callback) {for (var l = arr.length; l >= 0; l--) {callback(l, arr[l]);}
}// test
reverseEach([0, 1, 2], function (i ,n) {console.log(n);
})
复制代码

中止迭代器

var each = function (arr, callback) {for (var i = 0, l = arr.length; i < l; i++) {if (callback(i, arr[i]) === false){break;}}
}// test
each([1,2,3,4,5], function (i, n) {if (n > 3) {return false;}console.log(n);
});
复制代码

优点

1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。

缺点

由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。

小结

迭代器模式是一种相对简单的模式,绝大语言也内置了迭代器。

http://www.jmfq.cn/news/5284441.html

相关文章:

  • 创立一个公司需要什么/seo是一种利用搜索引擎
  • 表白网页在线生成网站/周口网站制作
  • 印刷行业网站建设/台州seo网站排名优化
  • 在线医疗网站建设/武汉百度开户电话
  • 找做金融的网站有哪些/网站结构优化的内容和方法
  • 西安网站开发公司定制/经典品牌推广文案
  • 东莞网站seo优化托管/免费推广自己的网站
  • wordpress+海+主题/seo网络优化软件
  • 福州制作网站软件/杭州seo服务公司
  • 建行商城网站/芭蕉视频app无限次数
  • 网站开发什么是会话/如何做电商新手入门
  • 应聘的做网站推广的/苏州网站制作公司
  • 便宜购 网站建设/seo公司官网
  • 徐汇做网站/找培训班一般在什么平台
  • 东莞市长安镇做网站/营销咨询顾问
  • 网站建设用cms/晚上网站推广软件免费版
  • 网站 502错误/培训机构管理系统哪个好
  • 个人建设网站程序/百度关键词搜索技巧
  • 领地申请的网站能备案吗/市场营销公司
  • 电商网站分析报告/seo是什么意思蜘蛛屯
  • 专业网站建设套餐/企业培训课程ppt
  • 胶州网站搭建公司/大型seo公司
  • 如何在网站投放广告/一键开发小程序
  • 做网站即墨/我赢seo
  • 读心王爷太难缠/seo整站优化费用
  • 科技局网站查新怎么做/烟台seo快速排名
  • 蚌埠网站建设兼职/seo搜索引擎优化工具
  • 香洲网站建设/免费一键生成个人网站
  • 企业网站建设报价方案/seo技术培训教程
  • 做网咖的网站/怎么创建网站?