Mar 30

Много често използвам Singleton pattern, или негови вариации, като напоследък използвам анонимни класове за това.  Ето един прост пример:

var Person = new (function(name){
	this.name = name;
	this.getName = function(){
		return this.name;
	};
	this.setName = function(name){
		this.name = name;
	};
})('Radoslav Stankov');

Prototype.js версията:

var Person = new (Class.create({
	initialize: function(name){
		this.name = name;
	},
	getName: function(){
		return this.name;
	},
	setName: function(name){
		this.name = name;
	}
}))('Radoslav Stankov');

Трябва да се обележи, че за разлика от езици като Java / PHP, в JavaScript може да се направи нова инстанция просто като се напише нещо такова:

var Person2 = new ( Person.constructor ) ('Някой друг');

Какво мислите по въпроса