코딩
[Java Script] 객체지향 프로그래밍 (클래스와 인스턴스)
Frontend
2022. 5. 25. 21:32
키워드 : 클래스, 인스턴스, new 키워드, 생성자 함수, 클래스 작성 문법(ES5, ES6), 속성, 메소드
객체 지향 프로그래밍(OOP : Object-Oriented Programming) ?
. 하나의 모델이 되는 청사진(blueprint)을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴.
. 데이터와 기능을 한 곳에 묶어서 처리하는 방식.
. 속성과 메서드가 하나의 ‘객체'라는 개념에 포함.
- 클래스(class) = 세부 사항(속성)이 들어가지 않은 청사진. 일종의 원형틀이라고 생각하면 된다.
- 보통 대문자로 시작, 일반 명사로 만든다.
- 클래스를 만드는 문법 (2가지)
ES5 | ES6 |
함수로 정의 가능 | class 키워드로 정의 가능 |
function Car(brand, name, color) { this.brand = brand; this.name = name; this.color = color; } |
class Car { constructor(brand, name, color){ this.brand = brand; this.name = name; this.color = color; } } |
- 인스턴스 객체(instances object) = 청사진을 바탕으로 속성이 추가되어 만들어지는 객체. 원형틀에 넣어서 찍어만든 물체라고 생각하면 된다.
- 일반적인 함수를 정의하듯 생성.
- new 키워드를 사용해서 생성 → 이 때 생성자 함수가 실행된다.
- 예시 : let avante = new Car (’hyundai’, ‘avante’, ‘black’);
- 각각의 인스턴스는 클래스의 고유한 속성과 메서드를 갖는다.
- 생성자 함수: 인스턴스 생성 시 세부 사항(속성)을 넣을 수 있도록 실행되는 코드. 인스턴스가 초기화될 때 실행하는 함수.
- 속성 및 메서드
- 클래스에 속성과 메서드가 정의되며, 인스턴스에서 이용한다.
- 메서드 : 일종의 객체에 딸린 함수.
ES5 ES6 방식 prototype을 이용해야 정의 가능 생성자 함수와 함께 class 키워드 안쪽에서 정의 형태(예시) Car.prototype.refuel = function(){} refuel(){} - prototype : 원형 객체(original form)을 의미.
- this : 인스턴스 객체를 의미. 함수가 실행될 때 해당 스코프에서의 객체를 가리킴.
Reference :
https://slides.com/codestates/copy-of-395a24/fullscreen#/3
클래스와 인스턴스 (2022)
A presentation created with Slides.
slides.com