본문 바로가기

JS/ECMAscript

이터레이터 프로토콜 iterator protocol

특정 객체의 요소를 어떤 방식과 순서로 순회할 지 정의하며 순회가 끝났는지를 나타내는 불리언 값인 done, 현재 원소 값인 value를 담은 객체를 반환하는 메서드를 이터레이터(반복자)라고 한다.


const Iterator = (arr)=>{
let i = 0
return{
next:()=>{
return i<arr.length?{value:arr[i++],done:false}:{done:true}
}
}
}

const v = Iterator([1,2,3])
console.log(v.next())
console.log(v.next())
console.log(v.next())
console.log(v.next())

결과

{ value: 1, done: false }

{ value: 2, done: false }

{ value: 3, done: false }

{ done: true }

'JS > ECMAscript' 카테고리의 다른 글

프로미스 promise  (0) 2018.12.31
이터러블 프로토콜 iterable protocol  (0) 2018.12.30
for of  (0) 2018.12.30
forEach  (0) 2018.12.29
멀티라인 문자열  (0) 2018.12.29