Еще вариант
/// Заставьте это работать
function Dummy() { // что-то тут нужно написать
if (Dummy.prototype.instance) {
return Dummy.prototype.instance;
}
Dummy.prototype.instance = this;
}
Dummy.prototype.value = 'dummy';
Dummy.prototype.setValue = function (value) {
this.value = value;
};
Dummy.prototype.getValue = function () {
return this.value;
};
// Используем
var foo = new Dummy();
var bar = new Dummy();
bar.setValue(123);
// Тесты
alert('foo === bar ->'+ (foo === bar)); // true
alert('values:'+ [foo.getValue(), bar.getValue()]); // [123, 123]
// Bonus level
baz = Dummy();
alert('baz === bar ->'+ [baz === bar, baz.getValue()]); // true, 123
и так
if (arguments.callee._singletonInstance) return arguments.callee._singletonInstance;
arguments.callee._singletonInstance = this;