 
			
				29.11.2013, 13:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2012 
					
					
					
						Сообщений: 81
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				$.extend() зачем оно?
			 
			
		
		
		
		Здравствуйте! 
Уточните, пожалуйста, в чем раздница между этим:
 
var options = {
   color_Even: '#ff0000', // цвет текста четных строк
   color_Odd:  '#0033ff' // цвет текста нечетных строк
   };
alert(options.color_Even)
и этим:
 
var options = $.extend({
   color_Even: '#ff0000', // цвет текста четных строк
   color_Odd:  '#0033ff' // цвет текста нечетных строк
   },options);
alert(options.color_Even)
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 13:54
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от niko42
			
		
	 | 
 
	| 
		в чем раздница
	 | 
 
	
 
 Это смотря для чего и как ты будешь это использовать...
 
Для такого использования
 
	
 
	| 
		
			Сообщение от niko42
			
		
	 | 
 
	
		
alert(options.color_Even)
 
	 | 
 
	
 
 разницы нет. 
Это просто вывод значения свойства некоего объекта... В обоих случаях оно равно строке
 
'#ff0000'
  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 13:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2012 
					
					
					
						Сообщений: 81
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от ksa
			 
		
	 | 
 
	| 
		!
	 | 
 
	
 
 Спасибо! Но меня интернесует, зачем и для чего $.extend оно нужно?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 14:06
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2012 
					
					
					
						Сообщений: 81
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Спсибо раза 3 чиатал, не понятно.....  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось niko42, 29.11.2013 в 14:08.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 14:13
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 12.07.2012 
					
					
					
						Сообщений: 81
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Я так понимаю:  
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar", mix : 123};
var s = jQuery.extend(settings, options);
alert(s.mix);
объединяет два объекта в один и все свойтсва двух объектов доступны в одном новом объекте
 
Верно ли данное суждение?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 14:20
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Кандидат Javascript-наук 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 07.12.2012 
					
					
					
						Сообщений: 113
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		niko42, 
В ООП, extend наследует свойства и методы из одного класса в другой, при этом добавляет новые необходимые свойства и методы, ради которых новый класс и создаётся.
 http://javascript.ru/tutorial/object...unkciya-extend 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось mi.rafaylik, 29.11.2013 в 14:57.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 14:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Быдлокодер;) 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.11.2010 
					
					
					
						Сообщений: 4,338
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 jQuery.extend необходимо использовать для создания примесей, т.е. создания нового (или расширение старого) объекта свойствами других объектов, частый пример: функция принимает на вход объект с различными параметрами, у части параметров есть значение по умолчанию и можно на основе двух объектов (входные параметры и по умолчанию) создать третий, в котором заданы актуальные свойства. 
 
jQuery.extend не надо использовать для наследования свойств объектов при работе с "классами", для этого есть прототипы! 
		
	
		
		
		
		
		
			
		
		
		
		
		
						  
				
				Последний раз редактировалось kobezzza, 29.11.2013 в 14:58.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 14:56
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Быдлокодер;) 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.11.2010 
					
					
					
						Сообщений: 4,338
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Я думаю человек спрашивает про jQuery.extend, а не тот, что указан в статье по твоей ссылке, да и ту функцию (что в твоей ссылке) правильней назвать inherit, чтобы не было путаницы, т.к. у многих extend ассоциируется именно с примесями, а не с наследованием прототипа функцией.  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.11.2013, 14:58
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от niko42
			 
		
	 | 
 
	
		Я так понимаю:  
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar", mix : 123};
var s = jQuery.extend(settings, options);
alert(s.mix);
 
объединяет два объекта в один и все свойтсва двух объектов доступны в одном новом объекте 
 
Верно ли данное суждение?
	 | 
 
	
 
 Да.    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |