Singleton : 특정 클래스의 인스턴스를 오직 하나만 유지한다.

즉 동일한 클래스를 사용하여 새로운 객체를 생성하면, 두 번째부터는

미리 생성한 인스턴스를 반환한다.



1. Singleton with static property.

장점 : 직관적이고, 간단하다.

단점 : instance가 공개된 멤버 변수다, 즉 외부에서 수정 가능하다.

2. Singleton with closure.

생성자 내부에서 생성자를 재선언함으로써,

인스턴스를 다시 생성하려고 할 때는 재 선언된 생성자를

사용하도록 하는 방법

장점 : instance를 외부에서 접근 불가능하다.

단점 : 재정의 시점 이전에 원본 생성자에 추가된 property를 잃어버린다.

출처 : Javascript Patterns, O’Reilly.