Prototype Chain 프로토타입 체인

agnusdei·2023년 7월 10일
0
post-custom-banner

프로토타입 체인(Prototype Chain)은 자바스크립트에서 객체 간의 상속을 구현하는 메커니즘입니다. 이를 통해 객체는 다른 객체의 프로퍼티와 메소드를 상속받을 수 있습니다. 프로토타입 체인의 동작 방식과 활용 방법을 살펴보겠습니다.

  1. 프로토타입과 [[prototype]]:

    • 자바스크립트에서 모든 객체는 [[prototype]]이라는 내부 슬롯을 가집니다. 이는 해당 객체의 프로토타입(prototype)을 가리킵니다.
    • 객체의 프로토타입은 다른 객체로서, 프로퍼티와 메소드를 가지고 있을 수 있습니다.
    • 프로토타입은 객체가 생성될 때 자동으로 설정되며, Object.create() 메소드를 통해 직접 지정할 수도 있습니다.
    • 프로토타입 체인은 [[prototype]]을 따라 올라가며 프로퍼티와 메소드를 찾는 계층 구조를 형성합니다.
  2. 프로토타입 체인의 탐색:

    • 객체에서 특정 프로퍼티나 메소드를 찾을 때, 먼저 해당 객체 자체에 해당 프로퍼티나 메소드가 있는지 확인합니다.
    • 만약 해당 객체에 프로퍼티나 메소드가 없다면, [[prototype]]을 통해 프로토타입 체인을 따라 위로 올라가면서 프로퍼티나 메소드를 찾습니다.
    • 이 과정은 프로토타입 체인을 따라 계속 진행되며, 최상위 프로토타입(Object.prototype)에 도달할 때까지 반복됩니다.
    • 최상위 프로토타입에서도 해당 프로퍼티나 메소드를 찾지 못하면, 해당 프로퍼티나 메소드는 정의되지 않았다고 판단됩니다. undefined
  3. 프로토타입 체인의 활용:

    • 프로토타입 체인은 객체 간에 상속을 구현하는데 활용됩니다. 객체를 다른 객체의 프로토타입으로 지정하면, 상속 관계가 형성됩니다.
    • 상속된 프로토타입의 프로퍼티와 메소드는 상속받은 객체에서 사용할 수 있습니다.
    • 상속을 통해 코드의 재사용성이 높아지고, 객체 간에 유사한 동작을 공유할 수 있습니다.

프로토타입 체인을 시각적으로 표현하면 다음과 같습니다:

[객체] -> [프로토타입1] -> [프로토타입2] -> ... -> [Object.prototype] -> null

프로토타입 체인을 통해 객체는 프로토타입 체인 상의 상위 객체의 프로퍼티와 메소드를 접근할 수 있습니다. 이를 이용하여 상속, 메소드 오버라이딩, 프로토타입 확장 등 다양한 패턴을 구현할 수 있습니다.

post-custom-banner

0개의 댓글