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

    자바스크립트에서는 리터럴 {} 또는 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에서 내려받을 수 있습니다.

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