JSFiddle - React, Tailwind, and code Playground
by skwjdgn
JavaScript
class Log{
constructor(){
this.messages = [];
}
add(message){
this.messages.push({message, timestamp: Date.now()});
}
[Symbol.iterator](){
let i = 0;
const messages = this.messages;
return {
next() {
if(i >= messages.length) return {value:undefined, done: true};
return {value:messages[i++], done: false};
},
[Symbol.iterator](){return this;}
}
}
}
const log = new Log();
log.add("first day at sea");
log.add("second dat at mountain");
for(let entry of log){
console.log(`${entry.message} @ ${entry.timestamp}`);
}
iter = log[Symbol.iterator]();
iter2 = log[Symbol.iterator]();
console.log(log[Symbol.iterator]());
console.log(iter);
console.log(log[Symbol.iterator]() == iter);
console.log(iter2 == iter2[Symbol.iterator]());