자바스크립트를 객체지향적인 언어라고 말할 수 있는 가장 중요한 이유 중 하나는 프로토타입 상속(prototypal inheritance)이라는 확장과 재사용이 가능하기 때문이다. 프로토타입 기반 프로그래밍은 객체의 원형인 프로토타입을 이용하여 새로운 객체를 만들어내는 프로그래밍 기법이다. 이렇게 새롭게 만들어진 객체 역시 자기자신의 프로토타입을 가지고 있으며 이 새로운 객체의 원형을 이용하면 또 다른 새로운 객체를 만들어 낼 수도 있으며 이런 방식, 구조로 객체를 확장하는 방식을 프로토타입 기반의 프로그래밍 언어라고 말한다.
자바스크립트에서 사용되는 프로토타입이란 용어는 크게 두가지로 나누어지고 있기 때문에 구분하는 것이 중요하다. 프로토타입 프로퍼티(Prototype Property)가 가리키고 있는 프로토타입 객체(Prototype Object)와 자기 자신을 만들어낸 객체 원형을 의미하는 프로토타입 링크(Prototype Link)로 나뉜다.
그리고 ECMAScript에서는 이러한 프로토타입 링크를 암묵적 프로토타입 링크라고 부른다.
자바스크립트의 프로토타입
자바스크립트의 모든 객체는 자기 자신을 생성한 객체 원형에 대한 숨겨진 연결고리를 가지고 있다. 이때 자기 자신을 생성하기 위해서 사용된 객체의 원형을 프로토타입이라고 한다. 그리고 자바스크립트의 모든 객체는 Object 객체의 프로토타입을 기반으로 하여 확장되었기 때문에 이 연결고리의 끝은 Object 객체의 프로토타입 Obejct이다.
프로토타입이란 사전적 의미가 원본, 원형으로써 프로그래밍 언어에서 프로토타입이란 의미도 크게 다르지 않다. 다시 말해, 어떤한 객체가 만들어지기 위해 그 객체의 부모가 되는 녀석을 프로토타입이라고 한다.
'스마트팩토리 > JS' 카테고리의 다른 글
자바스크립트 클래스(생성자) (0) | 2020.09.03 |
---|---|
자바 스크립트 객체지향 프로그래밍 (0) | 2020.09.03 |