iterable 객체
let range = {
form : 0,
to : 10,
step : 1,
current : 0,
// for of 문을 실행시 초기 Symbol.iterator이 실행 후 객체를 반환합니다.
[Symbol.iterator](){
this.current = this.form;
return this
},
// for of 문이 반복을 할때 마다 next() 함수가 실행이 됩니다.
// next() 리턴은 {done : Boolean, value : value} 형식으로 맞춰야합니다. (done = true 종료, done = false 반복)
next(){
if(this.current <= this.to){
return {
done : false,
value : this.current++
}
}else{
return {
done : true
}
}
}
}
for(let num of range){
console.log(num); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 순으로 출력
}
iterable 객체는 반복이 가능한 객체를 만드는데 사용합니다.
반복은 배열로 가능은 하지만, iterable 객체를 사용하면 for of 문을 통해 객체를 반복 시킬 수 있습니다.
1. for of 문이 실행 시 초기 Symbol.iterator이 실행이 되며 range 객체를 리턴합니다.
2. 반복을 할때 마다 next() 함수가 실행이 되며 리턴에 done의 값을 보고 반복을 판단합니다.
'프론트 엔드 > JavaScript' 카테고리의 다른 글
개발노트 :: 자바스크립트(JavaScript) Set (0) | 2022.03.25 |
---|---|
개발노트 :: 자바스크립트(JavaScript) Map (0) | 2022.03.24 |
개발노트 :: 자바스크립트(JavaScript) 배열과 내장함수 push, unshift, shift, pop (0) | 2022.03.22 |
개발노트 :: 자바스크립트(JavaScript) this 활용 (0) | 2022.03.18 |
개발노트 :: 자바스크립트(JavaScript) 객체 복사 (0) | 2022.03.16 |