JavaScript迭代器模式

迭代器模式

1.1 迭代器模式定義

迭代器模式是指提供一種方法順序訪問一個聚合對象中的各個元素,而又不需要暴露該對象的內部。迭代器模式可以把迭代的過程從業務邏輯中分離出來,在使用迭代器模式後,即不需要關心對象的內部構造,也可以按順序訪問其中的每個元素。

現在許多語言都有內置的迭代器實現,許多歷覽器也支持JavaScript的Array.prototype.forEach方法。

1.2 jQuery中的迭代器

$.each([1,2,3], (i, n) => {
    console.log(i, n) // i表示當前的下標,n表示當前的值
})

1.3 實現自己的迭代器

let each = function (arr, cb) {
  for (let i = 0; i < arr.length; i++) {
    cb.call(arr[i], i, arr[i])
  }
}
each([1,2,3], function (i, n) {
  console.log(i, n)
})

2 內部迭代器和外部迭代器

2.1內部迭代器

內部迭代器的迭代規則已經被提前規定好的。

2.2 外部迭代器

外部迭代器必須顯示的請求下一個迭代元素,外部迭代器增加了調用的複雜度,頁增加了迭代器的靈活性,我們可以手動控制迭代的過程或順序。


3 迭代數組與及字面量對象

迭代器不僅可以迭代數組還可以迭代一些類數組的對象,比如arguments。無論使內部迭代器還是外部迭代器,只要迭代對象擁有length屬性,並且可以通過下標訪問那他就可以被迭代。

4 倒序迭代

5 中止迭代

6 迭代器模式舉例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章