[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 #제네레이터 #객체할당