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
    }
}
相關文章
相關標籤/搜索