객체지향 프로그래밍 - 사람이 실체(사물이나 개념)을 인식하는 철학적 사고를 프로그래밍에 적목시키려는 시도이다.

실체는 성질을 나타내는 속성이 있다. 사람을 예로 들면 이름, 나이, 주소, 키 등등 여러가지가 있을 것이다. 프로그래밍은 그러 여러 속성 중 필요한 속성만 간추려 프로그래밍한다. 그것을 추상화라고 한다. 객체는 상태를 나타내는 데이터 상태와 그 데이터를 조작할 수 있는 동작으로 구성된 복합적인 자료구조이다.

 

상속 - 생성자 함수를 생각해보자. 간편하게 같은 구조의 프로퍼티나 메서드를 가진 객체를 만들 수 있다. 하지만 이런 반복은 결국 낭비가 된다. 그것을 방지하기 위해 부모 객체가 가진 것을 상속하여 불필요한 중복을 제거한다.

 

프로토타입 객체 - 모든 객체는 [[Prototype]] 이라는 내부슬롯을 가지며, 이 내부 슬롯의 값은 프로토타입의 참조다. 저장되는 프로토타입은 객체 생성방식에 따라 결정된다.

 

__proto__ 접근자 프로퍼티로 [[Prototype]] 내부슬롯에 간접접근 할 수 있다. 접근자함수이므로 get, set이 있으며 프로토타입을 읽거나 할당한다. __proto__ 는 객체가 직접 소유하는 것이 아닌 Object.prototype의 프로퍼티로 상속 받아 사용할 수 있다. 

 

질문 1) 접근자 프로퍼티를 통해 프로토타입에 접근하는 이유가 뭘까?

 

 

+ Recent posts