OOP(Object-Oriented Programming), 이하 객체지향 프로그래밍은 특정 라이브러리나 특정 언어를 사용하는 프로그래밍이 아닌, 하나의 프로그래밍 방식이라 말할 수 있다.
객체지향 프로그래밍의 가장 중요한 키워드는 재사용성 과 객체(Object) 라고 할수있다.
재사용성
객체지향 프로그래밍은 간단한 예로 같은 속성등을 가진 물건을 만들어내기 위해 거푸집을 이용하는 것이라 볼 수 있다. 여기서 거푸집은 생성자 함수(ES5), class(ES6) 등을 사용하게 되며, 이를 통해 같은 속성과, 메소드 등을 가진 물건, 즉 인스턴스를 필요한 만큼 손쉽게 만들어 낼 수 있다.
이러한 객체지향 프로그래밍은 현실세계를 기반으로한 프로그래밍을 진행할 때 유용하다.
아래에 간단하게 헬스장 회원을 관리할 수 있는 코드를 만들어 보았다.
ES5
function Members(name, sex, age, height, weight, membership) { this.name = name; this.sex = sex; this.age = age; this.height = height; this.weight = weight; this.membership = membership; } . . // method 정의___________________________________ Members.prototype.addMonth = function() { this.membership += 30; console.log(`${this.membership} days left`); } Members.prototype.sayHello = function() { console.log(`${this.name}님 안녕하세요! 회원권은 ${this.membership}일 남았습니다!`); } . . // 새 instance 생성______________________________ let 김태수 = new Members('김태수', 'male', 25, 183, 68, 90); . . . . . 김태수.sayHello() ===> '김태수님 안녕하세요! 회원권은 90일 남았습니다!'
ES6
class Members() { constructer(name, sex, age, height, weight, membership) { this.name = name; this.sex = sex; this.age = age; this.height = height; this.weight = weight; this.membership = membership; } . . // method 정의___________________________ addMonth() { this.membership += 30; console.log(`${this.membership} days left`); } sayHello() { console.log(`${this.name}님 안녕하세요! 회원권은 ${this.membership}일 남았습니다!`); } } . . // 새 instance 생성______________________________ let 김태수 = new Members('김태수', 'male', 25, 183, 68, 90); . . . . . 김태수.sayHello() ===> '김태수님 안녕하세요! 회원권은 90일 남았습니다!'