Factory Functions & Singleton Pattern
What design pattern does this factory function implement?
function createIterator(array) {
let nextIndex = 0;
return {
next() {
if (nextIndex < array.length) {
return { value: array[nextIndex++], done: false };
} else {
return { done: true };
}
},
hasNext() {
return nextIndex < array.length;
},
reset() {
nextIndex = 0;
}
};
}