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