这个函数是用es5模拟es6的迭代器,问题是为什么每次next方法之后,还保存着上一次调用next方法后的i值,不是每一次都是重新调用这个函数的方法吗?function createIterator(items) { var i = 0; return { next: function () { var done = (i >= items.length); var value = !done ? items[i++] : undefined; return { done: done, value: value }; } };}var iterator = createIterator([1, 2, 3]);console.log(iterator.next()); //{ done: false, value: 1 }console.log(iterator.next()); //{ done: false, value: 2 }console.log(iterator.next()); //{ done: false, value: 3 }console.log(iterator.next()); //{ done: true, value: undefined }
添加回答
举报
0/150
提交
取消