728x90
반응형
// it.js
class Log {
constructor() {
this.messages = [];
}
add(message) {
this.messages.push({ message, timestamp: Date.now() });
}
// create iterator
[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 };
}
}
}
}
let log = new Log();
log.add('first log');
log.add('second log');
log.add('third log');
for (let entry of log) {
console.log(`${entry.message} @ ${entry.timestamp}`);
}
728x90
반응형

'Javascript' 카테고리의 다른 글

non TDZ  (0) 2018.11.22
closure  (0) 2018.11.22
fibonacci.js  (0) 2018.11.08
화살표 함수 Arrow function of javascript  (0) 2018.09.28
javascript require 예제  (0) 2018.08.23

+ Recent posts