강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

이한솔님의 프로필 이미지
이한솔

작성한 질문수

모던 자바스크립트(ES6+) 기본

8. Symbol.iterator에 제너레이터 함수 연결

대괄호를 작성하지 않았을때의 결과값이 '1 2 3' 이나옵니다.

작성

·

202

1

안녕하세요 강사님. 

예제로 작성해주신 [코드1]를 작성해서 실행해보고 있는데, 

console.log(...obj); 형태로 대괄호를 작성하지 않고, 실행을 해보았는데 마지막 3 만 반환되는게 아닌 '1 2 3' 이 출력됩니다. 제가 잘못한 걸까요?

const obj = {};
obj[Symbol.iterator] = function*(){
	yield 1;
	yield 2;
	yield 3;
};
console.log(...obj);

답변 1

2

김영보님의 프로필 이미지
김영보
지식공유자

체크 해보니 강좌를 만들때와 다르게 나오며 현재는 1, 2, 3이 반환되는 것이 맞습니다. 빨리 강좌를 편집해야 겠습니다.

한편, console.log(...obj) 형태로 호출할 수는 있으나 console.log()를 사용하지 않고 "const result = ...obj" 형태로 실행 결과를 받으려고 할 때는 문법 에러가 발생하므로 현실적으로는 ...obj 형태를 사용할 수 없습니다.
반면, "cosnt result = [...obj]" 형태는 호출이 되며 [1, 2, 3] 형태로 result 변수에 할당됩니다.

이한솔님의 프로필 이미지
이한솔

작성한 질문수

질문하기