자바스크립트에서 객체를 생성하고 프로퍼티를 동적으로 추가하는 방법에 대해 알아보겠습니다. 여기서는 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
를 생성했습니다. 그 결과로 obj
는 proto
객체의 메서드를 상속하여 호출할 수 있습니다.
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() 메서드를 사용하여 동적으로 프로퍼티를 추가할 수 있습니다. 이는 객체지향 프로그래밍에서 유용한 기능으로, 객체를 유연하게 확장하고 상속하는 데 활용될 수 있습니다.
참고 문헌: