迭代器模式

作者: 阿蒙 时间: 2020-2-23 标签: 设计模式 浏览: 1500 评论: 0

1. 内部迭代器模式。迭代器内部已全部实现了迭代逻辑,外部只需要一次初始调用即可。 如forEach

/* 内部迭代器 */
    /* each */
    let each = function (arr, callback) {
      for (let i = 0, len = arr.length; i < len; i++) {
        callback.call(arr[i], i, arr[i]);
      }
    };
    each([1,2,3,4], function (i, k) {
      console.log(i, k);
    });

2. 外部迭代器: 外部迭代器必须显示请求下一元素。

/* 外部迭代器 */
    let Iterator = function ( arr ) {
      let current = 0;
      
      let next = function () {
        current += 1;
      };
      let isDone = function () {
        return current >= arr.length;
      };
      
      let getCurrentItem = function () {
        return arr[ current ];
      };
      
      return {
        next: next,
        isDone: isDone,
        getCurrentItem: getCurrentItem
      }
    }

0

本文相关标签: 设计模式笔记

赞助商

发表评论: