Javascript: miglior modello Singleton

Possibile duplicato:
Il modo più semplice / pulito per implementare singleton in JavaScript?

Sto usando questo modello per singleton, nell’esempio il singleton è PlanetEarth:

var NAMESPACE = function () { var privateFunction1 = function () { privateFunction2(); }; var privateFunction2 = function () { alert('I\'m private!'); }; var Constructors = {}; Constructors.PlanetEarth = function () { privateFunction1(); privateFunction2(); }; Constructors.PlanetEarth.prototype = { someMethod: function () { if (console && console.log) { console.log('some method'); } } }; Constructors.Person = function (name, address) { this.name = name; this.address = address; }; Constructors.Person.prototype = { walk: function () { alert('STOMP!'); } }; return { Person: Constructors.Person, // there can be many PlanetEarth: new Constructors.PlanetEarth() // there can only be one! }; }(); 

Dato che il costruttore di PlanetEarth rimane privato, può essercene solo uno.

Ora, qualcosa mi dice che questa cosa autocosciente non è la migliore che si possa fare, soprattutto perché non ho una formazione accademica e tendo a risolvere i problemi in modo stupido. Cosa proporresti come alternativa migliore al mio metodo, dove meglio è definito come stilisticamente migliore e / o più potente ?