[객체지향]
- 공통의 속성, 동작을 지니고 있지만 각기 존재마다 본인만의 특징이 있음, 이를 구현하기위한 방법
- 인간의 표현방법과 똑같이 만듬 : 주어(S)가 (무엇을) 한다(V) - 객체.메소드 : 객체가 동작한다(메소드)
- 이를 지향하는 프로그래밍 언어를 지칭하여 객체지향 프로그래밍 언어라 함
- 객체지향에는 두가지 방법이 있음 : 객체를 지향하는 것은 맞지만 각기 다른 방법에 의해 객체를 구현함
[두 객체지향의 차이]
1) 클래스 기반 객체지향 : 주로 c-family 언어(c++, java 등)
- 객체 설계도인 클래스를 만듬 : 공통 속성, 동작(메소드), 공통 속성에 대한 값을 초기화하기위한 생성자 메서드를 가지고 있음
- 클래스(설계도)에 맞춰 객체(new)를 생성함
- 생성자 메서드에서 각 공통의 속성에 대한 값을 초기화하고 객체가 생성됨
2) 프로토타입 기반 객체지향 : 자바스크립트 등
- 자바스크립트는 함수 기반언어로 프로토타입에 대한 이해에 앞서 함수로 객체를 어떻게 만드는지 등 기본 개념에 대해 살펴볼 것
- 자바스크립트의 함수는 생성자함수임(객체를 만들어내고 초기화하는 역할을 모두), 클래스 - 생성자메서드(함수 역할)이 따로X
- 생성자함수 역할은 함수를 기반으로 생성하는 객체들이 공통적으로 가질 속성(프로퍼티), 동작(메서드)을 정의하기위해서임
- 함수는 일반함수가 되기도 하고, 생성자함수가 되기도 함, 일반함수가 생성자함수 역할로 하게 만드는 키워드가 new임
- 함수가 생성자역할을 하고, new 키워드를 통해 객체를 만듬 : 이 과정에서 프로토타입 객체가 중요한 역할을 함(다음 포스팅)
- 짧게 프로토타입을 설명하면 생성자함수가 가지고 있는 공통 속성, 동작의 원형(원래의 초기값)임
- 하나 추가하자면 프로토타입 또한 함수가 기본으로 가지는 속성 - 상속의 개념을 만들 수 있음(프로토타입체인이라 함)
- 프로토타입에 대한 설명은 일단 여기까지고 이후 포스팅을 통해 더 자세히 알아볼 것임
[다음 포스팅]
- 클래스 기반과 프로토타입 기반 객체지향인 자바스크립트의 차이점에 대해 살펴보았음
- 프로토타입이라는 개념에 조금 더 쉽게 다가가기위해 자바스크립트 함수에 대해 자세히 알아볼 것임
- 이후 프로토타입이라는 것에 대해 포스팅할 것
'javascript' 카테고리의 다른 글
[자바스크립트] 프로토타입 (0) | 2017.03.18 |
---|---|
[자바스크립트] 함수는 무엇이다 (0) | 2017.03.15 |
[자바스크립트] 객체 (0) | 2017.03.11 |
[자바스크립트] 제어문(control-flow) (0) | 2017.03.10 |
[자바스크립트] 연산자 (0) | 2017.03.08 |
댓글