JavaScript

프로토타입 체인

재주원숭이 2022. 9. 22. 00:20
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를 상속받습니다