[javascript] Object.create() 메서드를 사용하여 동적으로 프로퍼티 추가하기

자바스크립트에서 객체를 생성하고 프로퍼티를 동적으로 추가하는 방법에 대해 알아보겠습니다. 여기서는 Object.create() 메서드를 사용하여 기존 객체를 상속하면서 새로운 프로퍼티를 추가하는 방법을 다룰 것입니다.

1. Object.create() 메서드란?

Object.create() 메서드는 주어진 프로토타입 객체 및 속성(property descriptors)을 사용하여 새로운 객체를 생성합니다. 즉, 해당 프로토타입 객체를 상속하는 새로운 객체를 생성하는 것입니다.

const proto = {
  sayHello() {
    console.log('Hello!');
  }
};

const obj = Object.create(proto);

obj.sayHello(); // 출력: Hello!

위의 예제에서는 proto 객체를 프로토타입으로 하는 새로운 객체 obj를 생성했습니다. 그 결과로 objproto 객체의 메서드를 상속하여 호출할 수 있습니다.

2. 동적으로 프로퍼티 추가하기

Object.create() 메서드를 사용하여 객체를 생성하고, Object.defineProperty() 메서드를 사용하여 새로운 프로퍼티를 추가할 수 있습니다.

const person = {
  name: 'Alice',
  age: 30
};

const newProp = 'email';
const emailDescriptor = {
  value: 'alice@example.com',
  writable: true,
  enumerable: true,
  configurable: true
};

Object.defineProperty(person, newProp, emailDescriptor);

console.log(person.email); // 출력: alice@example.com

위의 예제에서는 person 객체에 email 프로퍼티를 동적으로 추가하였습니다. 이를 통해 기존 객체를 상속하면서 새로운 프로퍼티를 추가할 수 있습니다.

이처럼 Object.create() 메서드와 Object.defineProperty() 메서드를 함께 활용하여 동적으로 프로퍼티를 추가할 수 있습니다.

결론

Object.create() 메서드를 사용하여 새로운 객체를 생성하고, Object.defineProperty() 메서드를 사용하여 동적으로 프로퍼티를 추가할 수 있습니다. 이는 객체지향 프로그래밍에서 유용한 기능으로, 객체를 유연하게 확장하고 상속하는 데 활용될 수 있습니다.


참고 문헌: