 
			
				25.10.2014, 15:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.09.2013 
					
					
					
						Сообщений: 1,436
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		И не буду, пример неверен. Надо так: 
function inherits(Child, Parent) {
  Child.prototype = Object.create(Parent.prototype, {
    constructor: {
      value: Child,
      writable: true,
      configurable: true,
      enumerable: false
    }
  })
}
function Interface(){};
function Class(){};
inherits(Class, Interface);
Interface.prototype.someValue = 1;
Class.prototype.someValue = 2;
alert((new Interface()).someValue);
alert((new Class()).someValue);
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Erolast, 25.10.2014 в 16:13.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 15:20
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.10.2014 
					
					
					
						Сообщений: 117
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Erolast, 
 Поправь код, у тебя ошибка там. Как поправишь, будем дальше смотреть. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 15:52
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.09.2013 
					
					
					
						Сообщений: 1,436
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Пардон, поправил. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 15:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.10.2014 
					
					
					
						Сообщений: 117
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Erolast, 
 Че то я не догоняю, до конца, че там происходит. Ща некогда, потом подумаю. Отпишусь завтра. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 18:10
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.09.2013 
					
					
					
						Сообщений: 1,436
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Сначала  
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	
		не надо п*ть, когда не знаешь. Впрочем, тебе не впервой. 
 
пиши жеквери, это самое твое. 
 
я распинаться перед тобой не буду, один х не поймшь
	 | 
 
	
 
 , а потом "что-то не догоняю, что происходит"? Найс.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 19:10
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 16.03.2010 
					
					
					
						Сообщений: 1,618
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Erolast
			
		
	 | 
 
	| 
		а потом "что-то не догоняю, что происходит"? Найс.
	 | 
 
	
 
 Ага, тоже доставило. Это ж классика. Что там думать?   
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 19:33
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.02.2013 
					
					
					
						Сообщений: 55
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Erolast
			 
		
	 | 
 
	
		И не буду, пример неверен. Надо так: 
function inherits(Child, Parent) {
  Child.prototype = Object.create(Parent.prototype, {
    constructor: {
      value: Child,
      writable: true,
      configurable: true,
      enumerable: false
    }
  })
}
function Interface(){};
function Class(){};
inherits(Class, Interface);
Interface.prototype.someValue = 1;
Class.prototype.someValue = 2;
alert((new Interface()).someValue);
alert((new Class()).someValue);
	 | 
 
	
 
 А почему вместо Object.Create() не использовать просто new? Или тут в качестве параметра descriptors задаётся что-то жизненно важное?
 
P.S. Ну тут без меня началось... Я не встреваю в междусобойчик.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 19:37
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.09.2013 
					
					
					
						Сообщений: 1,436
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	| 
		А почему вместо Object.Create() не использовать просто new?  Или тут в качестве параметра descriptors задаётся что-то жизненно важное?
	 | 
 
	
 
 Ты имеешь в виду, почему не "new Parent()"? Потому что, во-первых, нам не нужно вызывать конструктор, во-вторых, Class.prototype.constructor должен быть равен самому классу, а при создании через new он будет равен родителю.
 
Но ты таки присмотрись к ES6.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Erolast, 25.10.2014 в 19:43.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 19:51
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 15.02.2013 
					
					
					
						Сообщений: 55
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Erolast
			 
		
	 | 
 
	
		Ты имеешь в виду, почему не "new Parent()"? Потому что, во-первых, нам не нужно вызывать конструктор, во-вторых, Class.prototype.constructor должен быть равен самому классу, а при создании через new он будет равен родителю. 
 
Но ты таки присмотрись к ES6.
	 | 
 
	
 
 ES6... Смущает то, что его, как ты говоришь, нужно "компилировать". Тем более туда ведь ещё будут вноситься изменения. Не придётся ли потом код переписывать?
 
Спасибо за пример реализации. Буду курить дальше.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				25.10.2014, 20:00
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.09.2013 
					
					
					
						Сообщений: 1,436
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	| 
		ES6... Смущает то, что его, как ты говоришь, нужно "компилировать".
	 | 
 
	
 
 После должной настройки это один хоткей в редакторе. 
 
	
 
	| 
		
			 Цитата: 
		
	 | 
 
	| 
		Тем более туда ведь ещё будут вноситься изменения. Не придётся ли потом код переписывать?
	 | 
 
	
 
 До релиза три месяца осталось. Каких-то глобальных изменений уже не должно быть.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Erolast, 25.10.2014 в 20:05.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |