* 객체란
- 상태와 행위를 가집니다.
- 추상적인 객체(붕어빵 찍는 틀)를 통해 생성된 실체적인 특정 객체를(붕어빵) 인스턴스라고 합니다.
Prototype
자바스크립트의 모든 객체는 자신을 생성한 객체 원형에 대한 숨겨진 연결을 갖습니다.
이때 자기 자신을 생성하기 위해 사용된 객체 원형을 프로토타입이라고 합니다.
자바스크립트에서 사용되는 용어는 크게 두가지로 나눌 수 있습니다.
1. Prototype Link
객체 원형에 대한 숨겨진 연결입니다.
즉 상위에서 물려받은 객체의 프로토타입에 대한 정보입니다.
2. Prototype Object
자신을 원형으로 만들어질 다른 객체가 참조할 프로토타입 입니다.
즉 하위로 물려줄 연결에 대한 속성입니다.
JavaScript 객체(Instance)는 생성자(Constructor) 함수를 통해 생성됩니다.
1. 생성자 함수는 첫글자를 대문자로 작성하여, 일반 함수와 구분합니다.
# 자바스크립트는 별도로 다른 언어처럼 class를 지원하지 않음!
2. 자바스크립트의 모든 함수 객체는 정의와 동시에 .prototype이라는 속성값을 통해서 객체를 참조할 수 있습니다.
Prototype Chain
프로토타입과의 연결고리가 이어져 상속관계를 통하여 하위에서 상위 프로토타입으로 연속해서 이어지는 관계를 프로토타입 체인이라고 합니다.
이 연결은 __proto__를 따라 올라갑니다.
이로 인해 연결된 모든 변수 및 메소드 등과 같은 것은 접근할 수 있는 것입니다.
__proto__ 프로퍼티들간 이어진 점선을 타고 가다보면 최종적으로 Object 객체의 prototype Object에 다다릅니다.
때문에 자바스크립트의 모든 객체는 Object 객체에서부터 파생되어 나온 자식들이라고 하는 것입니다.
참고링크 - http://insanehong.kr/post/javascript-prototype/
'웹 > JavaScript & JQuery' 카테고리의 다른 글
[JavaScript] this (0) | 2019.02.15 |
---|---|
Animal, Pet, Cat 생성자, 프로토타입 (0) | 2019.02.14 |
[JavaScript] function 객체의 메서드 call(), apply() (0) | 2019.02.14 |
[JQuery] 제이쿼리 기본구조, 체이닝기법 (0) | 2018.07.10 |
[JavaScript] SetTimeout() (0) | 2018.05.28 |