holdanddeepdive/javascript-deep-dive

34장 이터러블

Opened this issue · 0 comments

  • ES6에서 도입된 이터레이션 프로토콜
    • 순회가능한 데이터 컬렉션을 위한 규칙
  • 이터러블 프로토콜/ 이터레이터 프로토콜
    • 이터러블 프로토콜
      • 이것을 준수한 객체를 이터러블이라 함
      • for...of 문으로 순회 가능
      • 스프레드 문법, 배열 디스터럭쳐링 할당(구조 분해 할당)의 대상으로 사용
    • 이터레이터 프로토콜
      • 이것을 준수한 객체를 이터레이터라 함
      • 이터러블의 요소를 탐색하기 위한 "포인터" 역할
  • 이터러블인지 체크하기
    • Symbol.iterator를 프로퍼티 키로 가지고 있는지 체크(직접 구현/상속)
    • 예: 배열은 Array.prototype의 Symbol.iterator 메서드를 상속받는 이터러블임
  • 이터레이터
    • next 메서드를 가짐
    • 메서드를 호출하면 순회 결과를 return (iterator result object)
      • 프로퍼티 키 value는 값, done은 순회 완료 여부