Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2013, 13:48
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 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)
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2013, 13:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от niko42
в чем раздница
Это смотря для чего и как ты будешь это использовать...

Для такого использования
Сообщение от niko42
alert(options.color_Even)
разницы нет.
Это просто вывод значения свойства некоего объекта... В обоих случаях оно равно строке
'#ff0000'
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2013, 13:56
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 12.07.2012
Сообщений: 81

Сообщение от ksa Посмотреть сообщение
!
Спасибо! Но меня интернесует, зачем и для чего $.extend оно нужно?
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2013, 13:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от niko42
зачем и для чего $.extend оно нужно?
http://jquery-docs.ru/Utilities/jQuery.extend/
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2013, 14:06
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 12.07.2012
Сообщений: 81

Сообщение от ksa Посмотреть сообщение
http://jquery-docs.ru/Utilities/jQuery.extend/
Спсибо раза 3 чиатал, не понятно.....

Последний раз редактировалось niko42, 29.11.2013 в 14:08.
Ответить с цитированием
  #6 (permalink)  
Старый 29.11.2013, 14:13
Аспирант
Отправить личное сообщение для niko42 Посмотреть профиль Найти все сообщения от niko42
 
Регистрация: 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);

объединяет два объекта в один и все свойтсва двух объектов доступны в одном новом объекте

Верно ли данное суждение?
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2013, 14:20
Аватар для mi.rafaylik
Кандидат Javascript-наук
Отправить личное сообщение для mi.rafaylik Посмотреть профиль Найти все сообщения от mi.rafaylik
 
Регистрация: 07.12.2012
Сообщений: 113

niko42,
В ООП, extend наследует свойства и методы из одного класса в другой, при этом добавляет новые необходимые свойства и методы, ради которых новый класс и создаётся.
http://javascript.ru/tutorial/object...unkciya-extend

Последний раз редактировалось mi.rafaylik, 29.11.2013 в 14:57.
Ответить с цитированием
  #8 (permalink)  
Старый 29.11.2013, 14:51
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

jQuery.extend необходимо использовать для создания примесей, т.е. создания нового (или расширение старого) объекта свойствами других объектов, частый пример: функция принимает на вход объект с различными параметрами, у части параметров есть значение по умолчанию и можно на основе двух объектов (входные параметры и по умолчанию) создать третий, в котором заданы актуальные свойства.

jQuery.extend не надо использовать для наследования свойств объектов при работе с "классами", для этого есть прототипы!
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 29.11.2013 в 14:58.
Ответить с цитированием
  #9 (permalink)  
Старый 29.11.2013, 14:56
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от mi.rafaylik Посмотреть сообщение
niko42,
В ООП, extend наследует свойства и методы из одного класса в другой, при этом добавляет новые необходимые свойства и методы, ради которых новый класс и создаётся.
http://javascript.ru/tutorial/object...unkciya-extend
Я думаю человек спрашивает про jQuery.extend, а не тот, что указан в статье по твоей ссылке, да и ту функцию (что в твоей ссылке) правильней назвать inherit, чтобы не было путаницы, т.к. у многих extend ассоциируется именно с примесями, а не с наследованием прототипа функцией.
__________________
kobezzza
code monkey
Ответить с цитированием
  #10 (permalink)  
Старый 29.11.2013, 14:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от 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);

объединяет два объекта в один и все свойтсва двух объектов доступны в одном новом объекте

Верно ли данное суждение?
Да.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить событие произошло оно или нет в другой функции jei Общие вопросы Javascript 14 07.04.2013 12:57
Зачем у NodeList и HTMLCollection свойство length enumerable? danik.js Общие вопросы Javascript 5 27.03.2013 11:02
Зачем создавались конструкторы Image и Audio? danik.js Общие вопросы Javascript 2 25.03.2013 19:06
Зачем нужен данный скрипт dmitry111 Общие вопросы Javascript 10 30.03.2012 14:52
Зачем нужна session_ destroy() ? jsuse Серверные языки и технологии 2 03.03.2012 08:19