Возможный дубликат:
Простейший/Самый чистый способ реализовать singleton в JavaScript?
Я использую этот шаблон для одиночных чисел, в примере синглтон - 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!
};
}();
Поскольку конструктор PlanetEarth остается закрытым, может быть только один.
Теперь, что-то говорит мне, что эта самодельная вещь не самая лучшая, что можно сделать, главным образом потому, что у меня нет академического образования, и я, как правило, решаю проблемы глупо. Что бы вы предложили в качестве лучшей альтернативы мой метод, где лучше определяется стилистически лучше и/или более мощным?