클래스는 객체입니다. 비유하자면 청사진이라고 할 수 있습니다.
인스턴스는 클래스라는 청사진으로 찍어낸 "실제" 제품같은 존재입니다.
인스턴스를 생성하기 위해선 new 키워드가 필요합니다.
const counter = new Counter();
생성자 함수는 인스턴스가 생성될 때 자동으로 호출되는 메서드입니다.
constructor(){
this.value = 0;
}
ES5 클래스 작성 문법
// ES5 문법은 아래와 같습니다.
function Car(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
Car.prototype.refuel = function() { // 프로토타입은 함수 밖에서 작성한다!
// 연료 공급을 구현하는 코드
}
Car.prototype.drive = function() {
// 운전을 구현하는 코드
}
ES6 클래스 작성 문법
// ES6 클래스로 작성해보면 위의 코드는 다음과 같습니다.
class Car{
constructor(brand,name,color){
this.brand = brand;
this.name = name;
this.color = color;
}
refule(){
// 동작하는 코드
}
drive(){
// 동작하는 코드
}
}
객체 지향 프로그래밍이란 객체 중심으로 프로그램을 만드는 것을 의미합니다.
캡슐화는 코드의 복잡성을 줄이고 재사용성을 높이는 것을 말합니다.
추상화는 마찬가지로 복잡성을 줄이고, 사용자가 복잡한 과정을 모르게 하는 것입니다.
상속은 자식 클래스가 부모클래스로부터 속성과 메서드를 상속받는 것을 의미합니다
다형성은 이러한 상속이라는 개념 속에서 하나의 메서드가 클래스별로 다르게 정의되는 것을 말합니다.