JavaScript---设计模式之迭代器模式

Posted H小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript---设计模式之迭代器模式相关的知识,希望对你有一定的参考价值。

迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该方法中的内部表示。

jQuery中我们经常会用到一个each函数就是迭代器模式

作用

为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作

对于集合内部结果常常变化各异,我们不想暴露其内部结构的话,但又想让客户代码透明的访问其中的元素,这种情况下我们可以使用迭代器模式。

注意事项

  1. 一般的迭代,我们至少要有2个方法,hasNext和Next,这样才做到遍历所有对象。
  2. 遍历的同时更改迭代器所在的集合结构可能会导致问题(比如C#的foreach里不允许修改item)
<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;
            }
        };
    })();
    while(diedai.hasNext()){
        console.log(diedai.next());
    }
</script>

 

以上是关于JavaScript---设计模式之迭代器模式的主要内容,如果未能解决你的问题,请参考以下文章

深入理解JavaScript系列(35):设计模式之迭代器模式

javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件

设计模式之迭代器模式

GOF23设计模式之迭代器模式(iterator)

设计模式之迭代器模式

设计模式之行为型迭代器模式