본문 바로가기
javascript pure/javascript 코어 개념

4. 프로토타입(Prototypes)과 프로토타입 상속(Prototype Inheritance) - 1

by leo2114 2024. 2. 15.
반응형

프로토타입의 개념과 동작 원리

프로토타입(Prototype)은 자바스크립트의 핵심 개념 중 하나로, 객체지향 프로그래밍에서 상속을 구현하는 메커니즘입니다. 이번 섹션에서는 프로토타입의 개념과 동작 원리에 대해 알아보겠습니다.

1. 프로토타입의 개념

프로토타입은 모든 객체의 원형이 되는 객체입니다. 모든 객체는 자신의 프로토타입을 가리키는 [[Prototype]]이라는 내부 링크를 가지고 있습니다. 프로토타입은 다른 객체로부터 상속된 속성과 메서드를 포함하고 있습니다. 즉, 프로토타입은 객체의 템플릿 역할을 합니다.

2. 프로토타입 체인

자바스크립트는 프로토타입 체인(Prototype Chain)을 통해 객체의 프로토타입을 순차적으로 검색합니다. 객체가 어떤 속성이나 메서드를 찾을 때, 해당 객체의 프로토타입 체인을 따라 올라가면서 검색을 수행합니다. 이러한 메커니즘을 통해 상속을 구현할 수 있습니다.

3. 프로토타입 객체 생성

프로토타입 객체는 함수를 통해 생성됩니다. 모든 함수는 기본적으로 prototype이라는 속성을 가지고 있으며, 이 속성을 통해 해당 함수의 프로토타입 객체에 접근할 수 있습니다.

function Person(name) {
    this.name = name;
}

Person.prototype.sayHello = function() {
    console.log("Hello, my name is " + this.name);
};

var person1 = new Person("Alice");
person1.sayHello(); // 출력: "Hello, my name is Alice"

 

위의 예시에서는 Person이라는 함수를 정의하고, 해당 함수의 프로토타입 객체에 sayHello 메서드를 추가했습니다. 이렇게 생성된 프로토타입 객체는 Person 함수로 생성된 모든 객체의 프로토타입이 됩니다.

4. 프로토타입의 활용

프로토타입은 상속을 통해 코드의 재사용성을 높일 수 있습니다. 부모 객체의 메서드를 자식 객체가 공유함으로써 코드 중복을 줄이고 효율적인 개발이 가능합니다. 또한 프로토타입을 직접 수정함으로써 모든 객체에 즉시 반영되는 장점도 있습니다.

5. 결론

프로토타입은 자바스크립트에서 객체지향 프로그래밍을 지원하는 핵심 메커니즘 중 하나입니다. 이를 통해 상속을 구현하고 코드의 재사용성을 높일 수 있으며, 객체지향 프로그래밍의 강력한 기능을 활용할 수 있습니다. 프로토타입을 잘 이해하고 활용한다면 더욱 효율적이고 유연한 자바스크립트 코드를 작성할 수 있습니다.

반응형