자바스크립트의 싱글톤 패턴
자바스크립트에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴을 구현할 수 있습니다.
자바스크립트에서 싱글톤 패턴은 다음과 같이 만들 수 있습니다.1
자바스크립트
코드 위치: ch1/1.js
const obj = {
a: 27
}
const obj2 = {
a: 27
}
console.log(obj === obj2)
// false
앞의 코드에서 볼 수 있듯이 obj와 obj2는 다른 인스턴스를 가집니다.
자바스크립트
코드 위치: ch1/2.js
class Singleton {
constructor() {
if (!Singleton.instance) {
Singleton.instance = this
}
return Singleton.instance
}
getInstance() {
return this.instance
}
}
const a = new Singleton()
const b = new Singleton()
console.log(a === b) // true
앞의 코드는 Singleton.instance라는 하나의 인스턴스를 가지는 Singleton 클래스를 구현한 모습입니다. 이를 통해 a와 b는 하나의 인스턴스를 가집니다.
1 이 책의 예제 소스는 https://github.com/wnghdcjfe/csnote 또는 https://github.com/gilbutITbook/080326에서 내려받을 수 있습니다.