Iterator(遍歷器) ES6

Iterator的作用有三個:一是爲各種數據結構,提供一個統一的、簡便的訪問接口;二是使得數據結構的成員能夠按某種次序排列;三是ES6創造了一 種新的遍歷命令for...of 循環,Iterator接口主要供 for...of消費。

Iterator的遍歷過程是這樣的。

(1)創建一個指針對象,指向當前數據結構的起始位置。也就是說,遍歷器對象本質上,就是一個指針對象。

(2)第一次調用指針對象的 next方法,可以將指針指向數據結構的第一個成員。

(3)第二次調用指針對象的 next方法,指針就指向數據結構的第二個成員。

(4)不斷調用指針對象的 next方法,直到它指向數據結構的結束位置。

下面是模仿next返回值的例子:

var it = makeIterator(['a', 'b']);
it.next() // { value: "a", done: false } 
it.next() // { value: "b", done: false } 
it.next() // { value: undefined, done: true }
function makeIterator(array) { 
var nextIndex = 0;
return {
    next: function() {
            return nextIndex < array.length ?
            {value: array[nextIndex++], done: false} :
            {value: undefined, done: true}; 
        }
    }; 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章