ES5 방식으로 상속기능 구현

정중식·2023년 2월 18일
0

자바스크립트

목록 보기
11/20

Object.create()

사용법

Object.create(부모object);

var 부모 = { name : 'Kim', age : 50 };
var 자식 = Object.create(부모);

console.log(자식.age); //50나옴
  • 자식.name 하면 'Kim'이 출력되고 자식.age 하면 50이 출력된다.

  • 아래 코드처럼하면 자식.age은 20이된다.

var 부모 = { name : 'Kim', age : 50 };
var 자식 = Object.create(부모);
자식.age  = 20;

console.log(자식.age); //20 나옴

작동원리

위의 코드에서 왜 부모로부터 상속받은 50이라는 age가 출력되지않았나?

  • 자바스크립트 오브젝트 자료형에서 특정 자료를 꺼낼 때는 다음과 같이 묻는 순서가 있다.

      1. 자식이라는 object가 직접 age를 갖고있으면 그거 출력
      1. 없으면 자식의 부모 prototype를 뒤져서 age가 거기있으면 그거 출력
      1. 거기도 없으면 부모의 부모 protype를 뒤져서 그거 출력

이러한 원리로 자식의 age가 20이 출력되는것이다.

profile
내 가치를 찾아서

0개의 댓글