객체 지향 프로그래밍 : 하나의 모델이 되는 청사진을 만들고, 그 청사진을 바탕으로 한 객체를 만드는 프로그래밍 패턴
❗️ 기존에 배우던객체(object)
와는 다른 개념이니 헷갈리지 말것!
class
instance
[참고]
붕어빵틀(class)와 각각의 붕어빵(instance)으로 설명하신 분이 있는데 비유가 찰떡같아서 이해가 잘된다ㅎㅎ 소개해주신 동기님 고마워요!🤗
new 키워드
--> 클래스의 새로운 인스턴스를 만든다let avante = new Car('Huyndai', 'avante', 'black')
let mini = new Car('bmw', 'mini', 'white')
생성자 함수
--> 인스턴스가 만들어질 때 실행되는 코드new 키워드 사용 -> 생성자 함수 실행 -> 변수에 클래스의 속성을 가진 인스턴스가 할당
class 키워드를 이용하여 클래스를 만드는 새로운 문법이 ES6에 도입🤟
최근에는 ES6문법을 자주 사용
❗️this
는 인스턴스 객체를 의미
ES5
function Car (brand, name, color) {/*생략*/}
Car.prototype.refuel = function() {
}
ES6
--> class 키워드 도입으로 더 간단하게 작성 가능
--> ES5에서 사용하던 prototype
을 사용하지 x
class Car {
constructor(brand, name, color) {/*생략*/}
refuel () {
}
}
💡 만약 학생이라는 클래스를 만든다면?
(너무 옛날이라 떠오르지가 않는다 ㅋㅋㅋㅋㅋㅋㅋ)
속성 | 메소드 |
---|---|
school | study() |
grade | sports() |
gender | game() |
class Car {
constructor(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
drive() {
console.log(this.name +'가 운전을 시작합니다.')
}
}
let avante = new Car('Hyundai', 'avante', 'red')
avante.color; //red
avante.drive(); // 'avante가 운전을 시작합니다.'
class Counter {
constructor () {
this.value = 0;
}
increase() {
this.value++
}
decrease() {
this.value--
}
getvalue(){
return this.value;
}
}
let Counter1 = new Counter()
Counter1.increase()
Counter1.increase()
Counter1.decrease()
Counter1.getvalue() // 1