Javascript/GMA(2302~)

23.04.26 자바스크립트 제너레이터함수

hyerin1201 2023. 4. 27. 00:13
   
   이터레이터 & 제너레이터

   문자열, 배열, Map, Set : 이터러블 객체
   *이터러블(iterable):순서대로 처리할 있는
   이터레이터 객체를 프로토타입으로 상속을 받아야지만, 이터러블 객체가 있다..
 
   이터러블객체의 특징
   이터레블 객체 > next( ) 메서드 가지고있다
   이터러블 객체에서 처음 실행했을때는 인덱스 첫번째 호출, next( )메서드를 한번더 실행하면 그다음 인덱스 값을 호출한다..
   next( ) 언제쓸까? : 값을 호출할때, 한번에 값을 호출하지 않고, 순차적으로 값을 호출하고 싶을때..

   제너레이터 함수
   function* 함수명( ) {
      yield key;
      yield key;
      yield key;
      yield key;
   }
   yield = return과 같은 역할 함수가 끝나면 key값을 넘겨준다

   function* gen( ) {
      yield 1;
      yield 2;
      yield 3;
   };
   let g1 = gen( );
   // g1.next( );
   // {value: 1, done: false}
   // g1.next( );
   // {value: 2, done: false}
   // g1.next( );
   // {value: 3, done: false}
   // g1.next( );
   // {value: undefined, done: true}
   // g1
   // gen {<closed>}
 
   let g2 = gen( );
   for(let i of g2) console.log(i);
   // 1
   // 2
   // 3
   let g3 = gen( );
   g3.next( ) 
   for(let i of g3) console.log(i);
   // 2
   // 3