-
모던 자바스크립트 Deep Dive - 프로토타입 체인JavaScript 2021. 9. 23. 21:43
function Person(name){ this.name = name; } Person.prototype.sayHello = function(){ console.log(`Hi! My name is ${this.name}`); } const me = new Person('Kim'); console.log(me.hasOwnProperty('name')); // true
위 코드에서 Person으로 생성한 객체 me가 hasOwnProperty라는 메서드를 사용하였다.
이것은 me 객체가 Person.prototype 뿐만 아니라 Object.prototype을 상속받았다는 것을 의미한다.
그렇다면 me.prototype은 무엇일까?
Object.getPrototype(me) === Person.prototype; // true Object.getPrototype(me) === Object.prototype; // true
자바스크립트는 객체의 프로퍼티(메서드 포함)에 접근하려 할 때 해당 객체에 접근하려는 프로퍼티가 없다면 [[Prototype]] 내부 슬롯의 참조를 따라 자신의 부모 역할을 하는 프로토타입의 프로퍼티를 순차적으로 검색한다. == 프로토타입 체인
프로토타입 체인의 최상위에 위치하는 객체는 언제나 Object.prototype이다.
프로토타입 체인은 상속과 프로퍼티 검색을 위한 메커니즘이다.
스코프체인은 식별자 검색을 위한 메커니즘이다.'JavaScript' 카테고리의 다른 글
모던 자바스크립트 Deep Dive - 이벤트 핸들러 등록과 제거 (0) 2021.09.26 모던 자바스크립트 Deep Dive - 프로퍼티 섀도잉 , 교체 , 정적 프로퍼티 (0) 2021.09.23 모던 자바스크립트 Deep Dive - 프로토타입 생성 (0) 2021.09.23 모던 자바스크립트 Deep dive - 프로토타입 ( 리터럴 표기법 ) (0) 2021.09.23 모던 자바스크립트 Deep Dive - Webpack 과 Babel (0) 2021.09.18