[javascript] 객체 생성 시 프로토타입의 역할
자바스크립트에는 프로토타입 기반의 객체 지향 언어이기 때문에, 모든 객체는 해당 객체의 프로토타입을 갖습니다.
프로토타입이란?
프로토타입은 객체의 원형이며, 기존의 객체를 기반으로 새로운 객체를 만들 때 사용됩니다. 모든 객체는 프로토타입을 바탕으로 생성되며, 해당 객체가 갖는 프로퍼티와 메소드는 프로토타입에서 상속받습니다.
프로토타입의 역할
프로토타입의 주요 역할은 다음과 같습니다:
- 상속: 기존 객체의 프로퍼티와 메소드를 새로운 객체가 상속받을 수 있도록 합니다.
- 메모리 절약: 객체를 생성할 때마다 모든 프로퍼티와 메소드를 복사하여 생성하는 것이 아니라, 프로토타입을 공유함으로써 메모리를 절약할 수 있습니다.
- 런타임 동적 변경: 프로토타입을 동적으로 변경하여 해당 프로토타입을 공유하는 모든 객체의 동작을 변경할 수 있습니다.
프로토타입 체인
객체가 특정 프로퍼티나 메소드를 찾을 때, 해당 객체의 프로토타입 체인을 따라 올라가면서 찾게 됩니다.
아래는 코드 예시입니다:
// 부모 객체
var parent = {
parentProperty: 'Parent Property'
};
// 자식 객체
var child = Object.create(parent);
child.childProperty = 'Child Property';
console.log(child.childProperty); // Output: 'Child Property'
console.log(child.parentProperty); // Output: 'Parent Property'
위 예제에서 child
객체는 parent
객체를 프로토타입으로 가지고 있으며, child
객체에서 parent
객체의 프로퍼티에 접근할 수 있습니다.
프로토타입을 통해 객체의 공통적인 동작을 정의하고 공유함으로써 코드의 재사용성을 높일 수 있습니다.
결론
프로토타입은 자바스크립트의 핵심 개념 중 하나로, 객체 지향 프로그래밍에서의 상속과 유연한 동작 변경을 가능케 합니다. 프로토타입을 이해함으로써 객체 생성과 동작상속을 효과적으로 다룰 수 있게 됩니다.
자세한 내용은 MDN web docs를 참고하시기 바랍니다.