객체 지향 프로그래밍은 순차적 프로그래밍의 단점을 보완할 수 있는 절차적, 구조적 프로그래밍이라고 볼 수 있다. 대표적인 것으로는 함수가 있다. 즉, 반복되는 동작을 함수 및 프로시저의 형태로 모듈화하여 사용하는 방식이다.
프로시저 = 리턴 값이 없는 함수, ex)
printf
반복동작을 모듈화하여, 코드를 많이 줄일 수 있다.
어떤 개념에 대한 자료형과 함수를 '객체'로 묶어 관리하는 패러다임이 등장하였다. 값을 저장할 변수
와 작업을 수행할 메소드
를 서로 연관된 것끼리 묶어 만든 것이 객체인 것이다. 객체 내부에 자료형 필드와 함수가 함께 존재하는 것이다. 추상적이었던 동작이 더 직관적으로 보이게 되어 가독성이 증가한다. 즉, 객체 간 독립성이 생기며, 중복성도 적어지고 유지보수에도 용이하다.
//모자딥다
// 생성자 함수(Constructor)
function Person(name) {
// 프로퍼티
this.name = name;
// 메소드
this.setName = function (name) {
this.name = name;
};
// 메소드
this.getName = function () {
return this.name;
};
}
// 인스턴스의 생성
var me = new Person('Lee');
console.log(me.getName()); // Lee
// 메소드 호출
me.setName('Kim');
console.log(me.getName()); // Kim
캡슐화, 상속, 추상화, 다형성