[javascript] 객체 할당과 제네레이터 함수의 사용.
제네레이터 함수는 ES6에서 도입된 새로운 유형의 함수입니다. 제네레이터 함수는 함수 실행을 일시 중단하고 다시 시작할 수 있는 기능을 제공하여 비동기 코드를 작성하기 편리하게 합니다.
이 글에서는 제네레이터 함수를 사용하여 객체를 할당하는 방법에 대해 알아보겠습니다.
객체 할당
객체 할당은 ES6에서 도입된 특징 중 하나로, 객체의 속성을 다른 변수에 쉽게 할당할 수 있습니다.
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const { name, age, city } = person;
console.log(name); // 출력: 'John'
console.log(age); // 출력: 30
console.log(city); // 출력: 'New York'
위 코드에서는 person
객체의 속성을 name
, age
, city
변수에 할당하고 있습니다.
제네레이터 함수 활용
제네레이터 함수는 function*
키워드를 사용하여 정의합니다. 제네레이터 함수 내부에서는 yield
키워드를 사용하여 값을 반환하고 함수의 실행을 일시 중단할 수 있습니다.
다음은 간단한 제네레이터 함수의 예시입니다.
function* myGenerator() {
yield 1;
yield 2;
yield 3;
}
const gen = myGenerator();
console.log(gen.next()); // 출력: { value: 1, done: false }
console.log(gen.next()); // 출력: { value: 2, done: false }
console.log(gen.next()); // 출력: { value: 3, done: false }
console.log(gen.next()); // 출력: { value: undefined, done: true }
위 코드에서 myGenerator
함수는 값을 순차적으로 반환하고, 매번 next()
메소드를 호출할 때마다 다음 값을 반환합니다.
객체 할당과 제네레이터 함수의 활용
제네레이터 함수와 객체 할당을 조합하여 다음과 같이 사용할 수 있습니다.
function* getPerson() {
yield { name: 'Alice', age: 25, city: 'London' };
yield { name: 'Bob', age: 30, city: 'Paris' };
yield { name: 'Charlie', age: 27, city: 'Berlin' };
}
const personGenerator = getPerson();
const { name, age, city } = personGenerator.next().value;
console.log(name); // 출력: 'Alice'
console.log(age); // 출력: 25
console.log(city); // 출력: 'London'
위 코드에서 getPerson
제네레이터 함수는 각각의 yield
문을 통해 개별 객체를 반환합니다. 이후 personGenerator.next().value
를 통해 반환된 객체를 바로 분해하여 할당할 수 있습니다.
이처럼, 객체 할당과 제네레이터 함수를 결합하여 효율적으로 비동기 코드를 작성할 수 있습니다.
참고 문헌:
#javascript #제네레이터 #객체할당