Front-end/JavaScript

JS 프로토타입 2편 - 상속

파리외 개발자 2023. 1. 22. 18:24

JS의 상속

JS는 프로토타입 속성과 프로토타입 객체를 통해 상속을 구현한다.

기본적인 문법은 (상속받을 개체).__proto__ = (상속하는 개체) 이지만

ES5에 Object.create가 새로 추가되면서 더 가독성 있게 상속을 구현할 수 있게 되었다.

이외에 클래스 extend를 사용한 상속 등 여러 방식이 있지만 여기선 create메서드만을 다루겠다.

 

Object.create()

let human = {
  mortal: true,
};

let socrates = Object.create(human);
socrates.age = 70;

소크라테스 객체는 human객체를 상속받으며, age속성을 추가했다.

소크라테스 객체는 age속성을 가지는 것으로 나온다.

객체 자체에는 mortal속성이 나오지 않았지만,

상속받은 mortal속성 또한 접근이 가능하다.

isPrototypeOf로 상속관계를 확인하면 제대로 상속이 돼있다는 것을 알 수 있다.