이터러블

이경택·2022년 2월 15일
0

이터레이션 프로토콜

순회가능한 자료구조를 만들기 위해 약속한 규칙
배열, 문자열, Map, Set등은 이터러블
*일반 객체는 이터러블이 아님

  • 메서드
    for문, for...of 문, 스프레드 문법, 배열 디스트럭처링 할당의 메서드로 순회 가능

이터러블 프로토콜

Symbol.interator인 프로퍼티키로 사용한 메서드를 직접 구현하거나 프로토타입 체인을 통해 상속받은 Symbol.iterator 메서드를 호출하면 이터레이터 프로토콜을 준수한 이터레이터를 반환
->이러한 규약을 이터러블 프로토콜이라 하고, 이터러블 프로토콜을 준수한 객체를 이터러블이라 함

이터레이터 프로토콜

이터러블의 Symbol.iterator 메서드를 호출하면 이터레이터 프로토콜을 준수한 이터레이터를 반환
이터레이터는 next 메서드를 소유하며 next 메서드를 호출하면 이터러블을 순회하며 value와 done 프로퍼티를 갖는 이터레이터 리절트 객체를 반환

// iterable - 순회 가능한 자료구조
[Symbol.iterator]() {...}
// iterator 위 {...} 안에 들어가는 것 - 이터러블의 요소를 탐색하기 위한 포인터
{
  next() {
    return {value: any, done: boolean} // 이터레이터 리절트 객체
  }
}

'배열은 이터러블이다' 라는 개념을 가져야 함

profile
한 줄로 소개 할 수 없는 개발자

0개의 댓글