javascript设计模式学习笔记之迭代器模式

迭代器模式

  • 顺序访问一个对象的 对象的内部
  • 可分为内部迭代器 和 外部迭代器

内部迭代器

  • 就是常见的 forEach(), 或者 $.each()
function forEach(arr, callback) {
    var i = 0,
        len = arr.length;
        
    for (; i < len; i++) {
        callback && callback(arr[i])
    }
}

外部迭代器

  • ES6 实现了 Iterator
// 简单 实现 Iterator
let Iterator = function(obj) {
    let current = 0;
    
    let next = function() {
        current += 1;
    }
    
    let isDone = function() {
        return current > obj.length;
    }
    
    let getCurrentItem = function() {
        return obj[current];
    }
    
    return {
        next: next,
        isDone: isDone,
        getCurrentItem: getCurrentItem,
        length: obj.length
    }
}