이터레이션 프로토콜의 의의

 

만약 이터레이션 프로토콜이 존재하지 않고 Array, String, Map, DOM data structure(NodeList, HTMLCollection) 등 다양한 데이터 소스가 각자의 순회 방식을 갖는다면 사용자는 그 순회 방식을 모두 익혀야 하고 프로그램에 모두 적용해줘야 했을 것이다. 이러한 비효율을 해소해 준 것이 이터레이션 프로토콜이다.

 

 

많이 쓰이는 for of문도 iterator 프로토콜을 준수

 

const array = [1, 2, 3];

for (let item of array) {
  console.log(item);
}

결과값
1
2
3

이렇게 표현한것도 실제로는 

const array = [1, 2, 3];

const iterator = array[Symbol.iterator]();

for (;;) {
  const res = iterator.next();

  if (res.done) break;

  console.log(res);
}

이렇게 이터레이터 프로토콜에 의하여 실제로는 이렇게 작용하고 있는 것이다.

 

 

 

 

 

 

+ Recent posts