 
			
				03.06.2010, 18:40
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Kolyaj
			
		
	 | 
 
	| 
		Себе только, у него работать перестанет.
	 | 
 
	
 
 Это понятно. Просто иногда хочется сделать такое апи, чтобы ничего лишнего не торчало. Да, прототипы это хорошо, но иногда этого мало. Я согласен с тем, что для объектов дублирование методов есть большое зло. Как вариант, можно создать локальный объект, который будет хранить нужную инфу для каждого объекта, там самым мы сможем использовать прототипы.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.06.2010, 18:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2008 
					
					
					
						Сообщений: 9,177
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от B~Vladi
			
		
	 | 
 
	| 
		Просто иногда хочется сделать такое апи, чтобы ничего лишнего не торчало.
	 | 
 
	
 
 Ну что значит не торчало? Что изменится от того, что будет торчать?
 
	
 
	| 
		
			Сообщение от B~Vladi
			
		
	 | 
 
	| 
		что для объектов дублирование методов есть большое зло
	 | 
 
	
 
 Так не единственное. Наследование, как видишь, тоже не реализовать нормально.
 
Не надо привносить классовую идеологию в JavaScript, и тогда никаких проблем не будет.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.06.2010, 18:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.01.2010 
					
					
					
						Сообщений: 32
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Методы в конструкторе создавать это да, некрасиво, а вот свойства бывает охота для красоты кода и правильности) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.06.2010, 18:45
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.02.2008 
					
					
					
						Сообщений: 9,177
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Kein
			
		
	 | 
 
	| 
		а вот свойства бывает охота для красоты кода и правильности)
	 | 
 
	
 
 А свойства и должны в конструкторе определяться, иначе они будут общими для всех объектов, порождаемых этим конструктором. Только не надо путать свойства с локальными переменными, лежащими в конструкторе.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				03.06.2010, 20:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Kolyaj
			
		
	 | 
 
	| 
		Ну что значит не торчало? Что изменится от того, что будет торчать?
	 | 
 
	
 
 Вот хочется мне чтобы не "торчало", что поделать? Ненужно оно там совсем.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2010, 00:42
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.07.2007 
					
					
					
						Сообщений: 304
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 создаете обьект как свойство вашего обьекта (к примеру this._privat={}) и туда все что не должно глаза мозолить. можете сделать перекрестную ссылку на ваш обьект если будет нужно.  
или как уже упоминалось obj._eee  или obj['~eee'] 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2010, 02:15
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Всё равно торчит. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2010, 11:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.12.2009 
					
					
					
						Сообщений: 155
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		B~Vladi, 
Можно создавать в конструкторе единственный метод, который будет возвращать ссылку на приватные свойства. По сути - тоже самое, что предлагает  vflash, но свойства не торчат. Вернее торчит один единственный метод, который имеет доступ к приватным свойствам. 
 
function MyClass()
{
	var self = this;
	var privates = {};
	self.getPrivates = function()
	{
		return privates;
	};
};
MyClass.prototype.setX = function(x)
{
	return this.getPrivates().x = x;
};
MyClass.prototype.getX = function()
{
	return this.getPrivates().x;
};
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2010, 12:29
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 09.07.2007 
					
					
					
						Сообщений: 304
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		и какой толк в функции getPrivates , тоже самое что и прямая ссылка на объект только еще хуже из за лишних телодвижений. 
	
 
	| 
		
			Сообщение от B~Vladi
			
		
	 | 
 
	| 
		Всё равно торчит.
	 | 
 
	
 
 ну и пусть торчит. проблема высосана из пальца  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2010, 12:36
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор Всея Форума 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.05.2009 
					
					
					
						Сообщений: 4,021
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от with-love-from-siberia
			
		
	 | 
 
	| 
		Можно создавать в конструкторе единственный метод, который будет возвращать ссылку на приватные свойства. По сути - тоже самое, что предлагает vflash, но свойства не торчат. Вернее торчит один единственный метод, который имеет доступ к приватным свойствам.
	 | 
 
	
 
 Я так и делаю.
 
	
 
	| 
		
			Сообщение от vflash
			
		
	 | 
 
	| 
		ну и пусть торчит. проблема высосана из пальца
	 | 
 
	
 
 Это API, а не проблема.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |