Помогите понять синглтоны 
		
		
		
		Наткнулся на такой вот пример создания в IO: 
	Singleton := Object clone Singleton clone = Singleton Насколько я понял, аналогом в JS будет: 
Object.prototype.clone=function(){return Object.create(this)}
singleton=Object.clone()
singleton.clone=function(){return singleton}
Не могу врубиться, как это можно использовать, нахер это нужно? Покажите, плз, простенький пример какой-нибудь, игрушечный чтоли. Это уже третья попытка, понять сабж:) Первые 2 -- неудачны:) Все, Sweet объяснил доходчиво, тема закрыта  | 
	
		
 В js это всё не актуально. Ты просто создаёшь объект, как глобальную переменную, 
	
var singleton = {};
и он будет доступен из любых других классов. singleton актуален для языков, типа C#, где глобальных переменных нет.  | 
	
		
 Sweet, 
	Понял, спасибо.  | 
	
		
 Цитата: 
	
 Пример на JavaScript с инкапсуляцией Цитата: 
	
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 
Object.prototype.clone=function(){return Object.create(this)}
 
foo={a: 1}
singleton=foo.clone()
singleton.clone=function(){return singleton}
console.log(
  singleton.clone()===singleton.clone(),
  singleton.a, singleton.clone().a
)
// true 1 1
Я недавно пришел к выводу, что классы в js -- это пятое колесо. Абсолютно все что можно селать с ними -- можно и без них, причем быстрей, лаконичней и прозрачней. Чтобы убедится в этом, достаточно сравнить няшный синглтон в стиле IO и ту вакханалию, которую ты приводишь в качестве примера. Использование классов в js от непонимания сути js.  | 
	
		
 Цитата: 
	
 можешь использовать/не использовать этот паттерн для создания модуля  | 
	
		
 bes, 
	это был ответ на Цитата: 
	
  | 
	
		
 Цитата: 
	
 Цитата: 
	
 в своём ответе я акцентировал внимание на единственность экземпляра, а не на глобальную точку доступа, как это сделал Sweet, хотя возможно он и предполагал, что объект, созданный литералом и так единственный в своём роде я также был неточен и вместо "наследовал" хотел сказать "получит", акцентируя внимание на создание объектов не при помощи литералов, но так как в контексте ответа смысл особо не терялся, не стал исправлять :)  | 
	
		
 bes, пох ваще. Не в настроение устраивать срачи:) Но вот это - убожество какое-то. Будто бы "неполноценный" js тянется к "совершенным" собратьям:D Нафига все эти пляски с new и прототипом. Нужна инкапсуляция? Пожалуйста: 
	
var singleton = (function () {
    var private = "x";
    return {
         getX: function () { return private; }
    };
}());
Классический js-паттерн. | 
	
		
 Цитата: 
	
 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 09:50. |