OOP (Object Oriented Programming)
-
객체 지향 언어
-
현실 세계를 반영
-
추상화를 통해 구체화 함
클래스가 원형으로 오브젝트를 구현
클래스에서 파생된 오브젝트는 독립적
ex) 자동차
클래스 : 자동차 틀
오브젝트 : 자동차 들
장점.
유지보수가 용이, 설계시간 단축
단점.
설계 시 용량이 커질 수 있으며 느려짐
Java, C++, C#, Python, PHP, Ruby, Object-C (클래스 기반 언어)
JavaScript (프로토타입 기반 언어)
- ECMAScript 6에서 새롭게 클래스가 도입
JavsScript OOP의 특성
1. 캡슐화
-
데이터와 절차를 모아 캡슐에 담는 것
-
외부에서 접근 불가, 함수를 통해서만 조작이 가능
2. 추상화
-
공통의 속성이나 기능을 묶어 이름을 붙임
-
불필요한 정보는 숨기고 중요한 정보만을 표현
3. 상속
-
부모의 특징을 물려 받는 것
-
의사 클래스 패턴 상속 (Pseudo-classical Inheritance)
-
프로토타입 패턴 상속 (Prototypal Inheritance)
의사 클래스 패턴 상속 : 자식 생성자 함수의 프로토타입 객체를 부모 생성자 함수의 인스턴스로 교체
프로토타입 패턴 상속 : Object.create 함수를 사용하여 객체에서 다른 객체로 직접 상속을 구현
4. 다형성
-
여러가지 형태를 가질 수 있는 기능
-
오버라이딩이나 오버로딩을 의미
오버라이딩 : 상속 관계에 있어서, 부모클래스의 메소드를 자식 클래스에서 같은 이름으로 재정의
오버로딩 : 한 클래스에서 같은 이름을 가진 메소드가 여러개 존재 할 수 있게 허용
JavaScript에서 Object를 생성하는 방법
-
객체 리터럴 ({ }) 사용
var obj = {};
var obj2 = {
'name': 'Lee',
'age' : 19
};
-
생성자 함수 사용
var date = new Date();
JavaScript에서 Prototype
-
클래스 없이도 객체를 생성 가능
-
자바스크립트의 모든 객체는 프로토타입이라는 객체를 가짐
-
모든 객체는 그들의 프로토타입으로부터 프로퍼티와 메소드를 상속
Reference
'CodeStates > └ JavaScript(Im)' 카테고리의 다른 글
CommonJS (0) | 2020.08.18 |
---|---|
Asynchronous JavaScript (0) | 2020.08.10 |
Prototype chain (0) | 2020.08.02 |
arrow function (0) | 2020.07.22 |
this & bind (복습) (0) | 2020.07.22 |
댓글