객체 지향 프로그래밍 (OOP, Object-oriented programming) ✍🏻
//ES6에서 class라는 키워드를 이용해서 정의
class Car { // 대문자와 일반명사 사용
constructor(brand, name, color) {
// 인스턴스가 만들어질 때 실행되는 코드
}
}
// new 키워드를 통해 클래스의 인스턴스를 만들어낼 수 있다.
let avante = new Car('hyundai', 'avante', 'black');
let mini = new Car('bmw', 'mini', 'white');
let beetles = new Car('volkswagen', 'beetles', 'red');
// 각 인스턴스는 car라는 클래스의 고유한 속성과 메소드를 갖는다.
class Car {
constructor(brand, name, color) {
refule() {
}
drive() {
}
}
}
class Car {
constructor(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
}
추상화와 캡슐화는 어떻게 다른가?
- 캡슐화가 코드나 데이터의 은닉에 포커스가 맞춰져있다면, 추상화는 클래스를 사용하는 사람이 필요하지 않은 메소드 등을 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스가 맞춰져 있다.
상속의 개념
클래스 상속의 원리
링크텍스트
Prototype chain(__proto__)
: __proto__
를 이용하면 부모 클래스의 프로토타입, 혹은 '부모의 부모 클래스'의 프로토타입을 탐색할 수 있다.