我正在尝试学习生成器,但在进入之前我想知道它是如何工作的原因
function makeIterator(array){
var nextIndex = 0;
return {
next: function(){
return nextIndex++
}
}
}
var it = makeIterator([1,2,3,4]);
为什么it.next()
返回1
而另一个it.next()
返回2
。怎么知道的?
有没有办法看看它在幕后的运作方式?
答案 0 :(得分:0)
迭代器是一个具有状态的对象。在您的情况下,状态是私有的nextIndex
闭包变量,它就是它跟踪的方式。
这里的幕后没有任何魔力,如果你没有那个变量,你就会出错。