nerv, для написания итераторов удобно использовать генераторы.
function *makeIterator(array){
var nextIndex = 0;
while (nextIndex < array.length) {
yield array[nextIndex++];
}
}
var iterator = makeIterator([1,2,3]);
for (var key of iterator) {
alert(key);
}
А ещё можно так:
for (var key of (el for (el of [1,2,3]))) {
alert(key);
}