객체 지향 프로그래밍이란?
이전 학습에서 this의 용법에 대해 공부했었다.
객체 내에서 자기 참조를 하는 변수라고 학습했는데,
정작 객체지향 프로그래밍에 대해서는 학습이 부족했던것 같다.
객체지향 프로그래밍이란,
기존의 명령형 프로그래밍의 절차지향 관점에서 벗어나
”객체”의 집합으로 프로그래밍 하는것을 의미한다.
객체지향 프로그래밍에서는 마치 사람이 실제 세계의 실체를 인식하는
사고 방식대로 프로그래밍 하고자 한다.
어떤 자동차를 본다고 생각하보면,
브랜드명, 모델명, 차종, 색상등의 속성으로 나누어 볼 수 있다.
“저 차는 BMW 브랜드의 320i 모델이고, 세단에 검정색 차량이네!”
라고 구체적으로 표현하여 특정한 자동차를 다른 자동차와 구분지어 인식할 수 있다.
예시로 나타내보자.
const car = {
brand: "BMW",
model: "320i",
set: "sedan",
color: "black",
};
console.log(car);
// {brand: "BMW", model: "320i", set: "sedan", color: "black"}
위와 같이 ‘여러 개의 값을 하나의 단위로 구성한 복합적인 자료구조’ 를 객체라 하고,
이러한 객체들을 독립적으로 집합해 프로그래밍 하는것이 객체지향 프로그래밍이다.
const car = {
price: 40000000,
getTotalPrice(discount) {
return this.price - this.price * (discount / 100);
},
};
console.log(car.getTotalPrice(10));
// 36000000
위와 같이 자동차의 가격을 뜻하는 price, 할인된 자동차의 가격을 구하는
getTotalPrice가 있다.
이 때 price(데이터)는 프로퍼티, getTotalPrice(ehdwkr)은 메소드라고 부른다.