더북(TheBook)

자바스크립트의 싱글톤 패턴

자바스크립트에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴을 구현할 수 있습니다.

자바스크립트에서 싱글톤 패턴은 다음과 같이 만들 수 있습니다.1

 

자바스크립트

코드 위치: ch1/1.js

const obj = {
    a: 27
}
const obj2 = {
    a: 27
}
console.log(obj === obj2)
// false

앞의 코드에서 볼 수 있듯이 objobj2는 다른 인스턴스를 가집니다.

 

자바스크립트

코드 위치: 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 클래스를 구현한 모습입니다. 이를 통해 ab는 하나의 인스턴스를 가집니다.

 

 


1 이 책의 예제 소스는 https://github.com/wnghdcjfe/csnote 또는 https://github.com/gilbutITbook/080326에서 내려받을 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.