프로토 타입 (prototype) in JS

엄강우·2022년 5월 28일
0

TIL

목록 보기
25/43

자바스크립트는 객체의 상속을 프로토타입으로 해결합니다. 그래서 자바스크립트를 잘 이해하기 위해서는 프로토타입에 대해 이해해야합니다.
일단 프로토 타입이 쓰이는 곳에 대해 언급을 하자면 가장 대표적인 객체 생성 연산자인 new가 있습니다.

new 연산자

새로운 객체를 생성하기 위해 생성자 함수와 함께 사용하는 연산자 입니다. new 연산자와 생성자 함수를 함께 사용하면.
1. 생성자 함수 내에 this= {} 객체를 임시로 생성합니다.
2. this.__proto__ 에 생성자 함수의 prototype을 할당합니다.
3. 생성자 함수를 this에 바인딩 합니다.
4. this를 리턴합니다.

프로토타입 이란?

자바스크립트의 모든 객체는 프로토타입을 통해 상속받습니다. 예를 들어 우리가 객체 리터럴을 이용해 객체를 생성하면 이 객체는 Object.prototype을 상속받게 되며 Object라는 객체가 가지는 모든 속성을 가지게 됩니다.

 const newArr = new Array(); // newArr은 Array.prototype을 상속 받게됩니다.
 newArr.map() // Array를 상속 받았기에 map 메소드를 사용할 수 있습니다.

newArr.__proto__Array.prototype과 똑같은 값을 값을 가지게 됩니다. 이 말인 즉슨 newArr.__proto__에는 상속 받는 객체의 prototype을 저장하면 프로토 타입 체인으로 상위 객체에 접근이 가능하게 된다는 의미입니다.

프로토 타입 체인

객체에서 어떤 프로퍼티를 찾아가는 과정을 프로토타입 체인이라고 합니다. 객체에서 프로퍼티가 있는지 확인한 후 없으면 prototype에서 프로퍼티를 찾고 또 그 객체에서 prototype에서 프로퍼티를 찾아 가면서prototypenull일때까지 찾아갑니다.

profile
안녕하세요 프론트엔드 개발자를 꿈꾸는 엄강우입니다.

0개의 댓글