프로토 타입이란 클래스객체의 내용 복사 없이도 상속의 효과를 구현할 수 있게 해주는 방법이다.

프로토타입 링크(**proto)**

프로토타입 링크를 proto 라고 편의상 적어놓긴 했지만 정식 명칭은 [[prototype]] 이고, proto 은 크롬을 포함한 최신 자바스크립트 환경에서 사용하는 이름이다.

그런데 프로토타입 링크를 언제 사용되는 걸까?

현재 객체에 존재하지 않는 속성에 접근하려고 할 때 프로토타입 링크를 통해 프로토타입 링크가 참조하고 있는 부모 객체를 찾으려고 할 때 사용된다.

예를 들어 아래와 같이 배열을 하나 정의했다고 하자.

const arr = [1, 2, 3];

arr의 prototype 을 확인해 보면 undefined 이고 위 코드에서 확인할 수 있다시피 따로 프로토타입에 만들어 놓은 메서드는 없다. 하지만 map이나 filter 등 내가 정의하지 않는 메서드를 사용할 수 있는데, 이 이유가 프로토타입 링크에 의한 탐색 때문인 것이다.

Untitled