본문 바로가기
CodeStates/└ JavaScript(Im)

OOP

by Dream_World 2020. 7. 29.

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

댓글