JavaScript设计模式与开发实践---读书笔记(7) 迭代器模式

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

JavaScript中的Array.prototype.foreach.

1.JQuery中的迭代器

$.each函数

2.自己实现一个each函数

    var each = function(ary,callback){
        for(var i=0,l=ary.length;i<l;i++){
            callback.call(ary[i],i,ary[i]);//把下标和元素当作参数传给callback函数
        }
    };

    each([1,2,3],function(i,n){
        alert([i,n]);
    });

3.内部迭代器和外部迭代器
内部迭代器在调用时非常方便,外界不用关心迭代器内部实现,跟迭代器的交互也仅仅是一次初始调用,但这也刚好是内部迭代器的缺点。由于内部迭代器的迭代规则已经被提前规定好,不能很好的实现一些需求。

外部迭代器必须显式地请求迭代下一个元素。

外部迭代器增加了一些调用的复杂度,但相对也增强了迭代器的灵活性,我们可以手工控制迭代的过程或者顺序。

 

4.迭代器模式不仅可以迭代数组,还可以迭代一些类数组的对象。

在JavaScript中,for in语句可以用来迭代普通字面量对象的属性。

5.倒序迭代器

6.中止迭代器

7.应用举例

8.小结

迭代器模式是一种相对简单的模式,简单到很多时候我们都不认为它是一种设计模式。

posted @ 2016-10-09 19:06  cmy1025  阅读(147)  评论(0编辑  收藏  举报