본문 바로가기
JavaScript

[JavaScript] 프로토타입 체인

by lvd-hy 2023. 3. 16.
반응형

프로토타입 체인

자바스크립트는 객체의 프로퍼티(메서드 포함)에 접근하려고 할 때 해당 객체에 접근하려는 프로퍼티가 없다면 [[Prototype]] 내부 슬롯의 참조를 따라 자신의 부모 역할을 하는 프로토타입의 프로퍼티를 순차적으로 검색한다. 이를 프로토 타입 체인이라한다.

객체 지향 프로그래밍의 특성 중 상속을 JavaScript에서 구현할 때에는 프로토타입 체인을 사용한다.

Object에 정의되어 있는 메서드를 person1에서 호출하면 아래와 같은 과정으로 메서드를 검색한다.

1. person1 객체가 valueOf() 메서드를 가지고 있는지 체크한다.

2. person1 객체가 valueOf() 메서드가 없다 → person1의 프로토타입 객체 Person.prototype에 valueOf() 메서드가 있는지 체크한다.

3. Person.prototype에 valueOf() 메서드가 없다 → Objec.prototype에 valueOf() 메소드를 가지고 있는지 체크한다.

4. Object.prototype에 valueOf() 메서드가 있다  해당 메서드를 호출한다.

valueOf()

특정 객체의 원시 값을 반환하는 메서드

Reference

자바스크립트 딥다이브 19장 프로토타입

https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/Object_prototypes

 

Object prototypes - Web 개발 학습하기 | MDN

Javascript에서는 객체를 상속하기 위하여 프로토타입이라는 방식을 사용합니다. 본 문서에서는 프로토타입 체인이 동작하는 방식을 설명하고 이미 존재하는 생성자에 메소드를 추가하기 위해 프

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf

 

Object.prototype.valueOf() - JavaScript | MDN

valueOf() 메서드는 특정 객체의 원시 값을 반환합니다.

developer.mozilla.org

 

반응형

'JavaScript' 카테고리의 다른 글

[JavaScript] 클로저 (closure)  (0) 2023.03.17
[JavaScript] 식별자 네이밍 규칙  (0) 2023.03.17
[JavaScript] Prototype  (0) 2023.03.15
객체 지향 프로그래밍  (0) 2023.03.15
[JavaScript] 클래스와 인스턴스  (0) 2023.03.15

댓글