JS设计模式——迭代器模式
2015-09-08 10:09
633 查看
模式作用:
1,为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作
2,对于集合内部结果常常变化各异,我们不想暴露其内部结果的话,但又想让客户代码透明的访问其中的元素,这种情况下我们可以使用迭代器模式
注意事项:
1,一般的迭代,我们至少要有2个方法,hasNext()和Next(),这样才能做到遍历所有对象
2,遍历的同时更改迭代器所在的集合结构可能会导致问题(比如C#的foreach里不允许修改item)
1,为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作
2,对于集合内部结果常常变化各异,我们不想暴露其内部结果的话,但又想让客户代码透明的访问其中的元素,这种情况下我们可以使用迭代器模式
注意事项:
1,一般的迭代,我们至少要有2个方法,hasNext()和Next(),这样才能做到遍历所有对象
2,遍历的同时更改迭代器所在的集合结构可能会导致问题(比如C#的foreach里不允许修改item)
<meta charset="utf-8"> <script type="text/javascript"> var arr=["1","2","3"]; var diedai=(function(){ var length=arr.length; index=0; return{ hasNext:function(){ return index<length; }, next:function(){ var data=arr[index]; index=index+1; return data; }, reset:function(){ index=0; } }; })(); //自执行函数 while(diedai.hasNext()){ console.log(diedai.next()); } //jQuery的each方法调用 // $.each(arr,function(index,val){ // console.log(index); // console.log(val); // }); </script>
相关文章推荐
- JS设计模式——外观模式
- JS设计模式——责任链模式
- JS设计模式——适配器模式
- Ember.js 入门指南——计算属性(compute properties)
- 深入理解javascript原型和闭包(完结
- Ember.js 入门指南——计算属性(compute properties)
- js 数组清空
- json数据的添加和删除
- js表单计算金额问题
- JS实现的另类手风琴效果网页内容切换代码
- json(二)
- JS 学习心得
- JavaScript中var关键字的使用详解
- JointJS:可与Visio相媲美的开源在线制图工具
- js点击页面隐藏div
- js常用的方法
- Javascript的this用法
- js setTimeout 和 setInterval实现多线
- JavaScript显式类型转换与隐式类型转换
- js刷新页面方法大全