| Thekostya | 
			20.11.2012 15:11 | 
		 
		 
		
		 
		
		
		
		
		
	Цитата: 
	
	
		
			 
			
				
					Сообщение от deivan
					(Сообщение 216892)
				 
				благодарю, а могли бы пояснить логику этого процесса, так сказать, "на пальцах"?.. 
			
			 
		 | 
	 
	 
 Если на пальцах то так:  
Имеем твои условия:
 
var a = new Someting, b = new Someting;
 
Someting.prototype.my_name = 'Jack';
 
a === b && a.constructor === Someting && b.constructor === Someting && b.my_name == 'Jack'
 
Читаем описание === для сравнения объектов и отсюда делаем вывод что в результате a и b должны ссылаться на один объект. Нам нужен конструктор, который все время выдает один и тот же объект. Это и есть паттерн Singleton.
 
function Something() {
   if (!Something._inst)
      Something._inst=this;
   return Something._inst;
}
Как он работает - проверяем переменную "класса" :)  _inst, если пустая, то значит это первый запуск конструктора, присваиваем ей текущий экземпляр this. Если она не пустая то уже хранит ранее созданный, который мы и возвращаем. Таким образом мы создаем 1 экземпляр и в дальнейшем возвращаем всегда его.  
	 |