본문 바로가기

JavaScript

프로토타입 체인

1
2
3
4
5
6
7
class Person {
    constructor(name) {
        this.name = name;
    }
}
const me = new Person('Lee Joong Won');
console.log(me.hasOwnProperty('name')); //true
cs

위 코드를 보면 Person 생성자 함수에 의해 생성된 인스턴스 me 객체는 Object의 메서드를 사용하고 있다

 

이를 통해 알수있는것은 me의 객체가 Person 프로토타입의 프로퍼티 뿐만아니라 Object 프로토타입의 프로퍼티를 상속받은것을 알 수 있다

 

자바스크립트에서는 객체의 프로퍼티(메서드 포함)에 접근 할 때 접근하려는 프로퍼티가 없다면 프로토타입 내부 슬롯의 참조를 따라 순차적으로 검색합니다

( me -> Person -> Object 순으로 검색하여 hasOwnProperty() 를 찾아 me 객체가 사용한것입니다)

 

이것을 체인처럼 연결되어있다고 하여 프로토타입 체인이라고 합니다

프로토타입 체인은 객체지향 프로그래밍에서 상속을 구현하는 방식입니다

hasOwnProperty() 메서드를 검색하는 과정

 

프로토타입의 최상위 객체는 Object  입니다

모든 객체는 자동으로 Object를 상속받습니다

'JavaScript' 카테고리의 다른 글

Promise의 기능과 필요한 이유  (0) 2022.10.19
프로토타입  (0) 2022.09.21
객체지향 프로그래밍이란?  (1) 2022.09.21
클래스와 인스턴스  (0) 2022.09.21
함수란?  (0) 2022.09.20