목차
01_객체 지향 프로그래밍은 무엇인가? What is OOP?
<aside> 🍦 단순하게 온라인 상의 쇼핑몰을 생각해보자. 상품 서칭 → 장바구니 담기 → 결제하기 → 배송 받기 의 과정을 구현한 것도 객체 지향적인 사고일 수 있다.
</aside>
02_자바스크립트와 객체 지향 프로그래밍
자바스크립트에는 ES6 문법에 비로소 class 키워드가 들어오면서 손쉬운 인스턴스 생성이 가능해졌다.
자바스크립트로 객체 생성하는 방법
// 객체 리터럴
var obj1 = {};
obj1.name = 'Lee';
// Object() 생성자 함수
var obj2 = new Object();
obj2.name = 'Lee';
// 생성자 함수
function F() {}
var obj3 = new F();
obj3.name = 'Lee';
// Class
class F {
constructor() {}
}
생성자 함수를 이용하여 내부에 메소드를 생성하였을 때, new 키워드로 새로운 객체를 생성할 때마다 불필요한 메모리 낭비가 발생할 수 있다. 아래의 코드 예시를 보자. 아래의 me, you 객체는 각각 setName 이라는 메소드를 가지게 된다.
function Person(name) {
// 프로퍼티
this.name = name;
// 메소드
this.setName = function (name) {
this.name = name;
};
}
var me = new Person('Lee');
var you = new Person('Kim');
이러한 메모리 낭비를 해결하기 위해서 우리는 다른 객체를 참조할 수 있는 링크. Prototype 을 사용한다.
03_Prototype에 대해서