迭代器对象如何跟踪其在javascript中的位置?

时间:2016-07-19 10:28:16

标签: javascript loops

我正在尝试学习生成器,但在进入之前我想知道它是如何工作的原因

function makeIterator(array){
    var nextIndex = 0;    
    return {
       next: function(){
           return nextIndex++
       }
    }
}
var it = makeIterator([1,2,3,4]);

为什么it.next()返回1而另一个it.next()返回2。怎么知道的?

有没有办法看看它在幕后的运作方式?

1 个答案:

答案 0 :(得分:0)

迭代器是一个具有状态的对象。在您的情况下,状态是私有的nextIndex闭包变量,它就是它跟踪的方式。

这里的幕后没有任何魔力,如果你没有那个变量,你就会出错。