All ContentsCategoryAbout

프로토타입 체인(prototype chain)

21 June, 2020 - JavaScript - 1 min read

javascript

프로토타입(prototype)

자바스크립트의 모든 객체는 [[Prototype]]이라고 하는 내부 슬롯(internal slot)을 지닌다. 하위 객체는 상위 객체의 prototype을 상속받으며, 상속받은 데이터는 __proto__에 저장된다.

const myCat = {
  name: 'Lucy',
  sayHello: function() { console.log('Hello! ' + this.name); }
};

const yourCat = {
  name: 'Tom'
};

yourCat.__proto__ = myCat;

const whoseCat = {};
whoseCat.__proto__ = yourCat;

whoseCat.sayHello(); // Hello! Tom

프로토타입 체인(prototype chain)

위와 같이 __proto__를 통해 하위 객체와 상위 객체가 이어져 있으며, 이를 프로토타입 체인 이라고 한다. 그리고, 자신과 가까운 객체의 프로퍼티부터 위로 거슬러 올라가며 검색하게 된다.

Object.getPrototypeOF()

ES 명세에서나 브라우저에서나 __proto__를 통한 접근은 권장하지 않는다. 따라서 프로토타입 메서드에 접근해야 할 때에는 Object.getPrototypeOf() 또는 Object.creat()를 활용하도록 하자.

참고:

© 2023 intzzzero, Built with

Gatsby