Singleton pattern

by Arnaud Buchholz

JavaScript

function MySingleton() {
    if (!(this instanceof MySingleton)) {
        throw "Use new";
    }
    var instance = MySingleton._instance;
    if (undefined === instance) {
        instance = this;
        MySingleton._instance = instance;
    }
    return instance;
}

var a = new MySingleton();
var b = new MySingleton();
console.log(a === b); /// true