|
-
Категории: Utilities
jQuery.extend()
Объединяет содержимое двух или более объектов (расширяет исходный объект, дополняя его свойствами объектов источников).
Синтаксис и описание:
Добавлено в jQuery 1.0jQuery.extend( target [, object1, objectN ] )
Добавлено в jQuery 1.1.4jQuery.extend( [ deep ,] target, object1 [, objectN ] )
Функция jQuery.extend() изменяет (расширяет) и возвращает исходный объект, дополняя его свойствами объектов источников. (Имитация наследования в объектно-ориентированных языках программирования.)
Возвращаемое значение: Объект.
Параметры:
deep – (логическое значение) По умолчанию имеет значение false (т.е., если свойство исходного объекта в свою очередь является массивом или объектом, то оно полностью перезаписывается одноименным свойством объекта источника). Если установлено значение true, то слияние свойств происходит рекурсивно.
target – (объект) Исходный объект, свойства которого дополняются свойствами других объектов-источников. Все одноименные свойства переопределяются значениями свойств объектов-источников. Исходный объект будет изменен и возвращен функцией.
object1, objectN – (объекты) Один или несколько объектов-источников, свойствами которых дополняется исходный объект. Все одноименные свойства переопределяются значениями свойств объектов-источников. Приоритет имеют объекты, находящиеся в конце списка.
-
Примечание:
Т.к. исходный объект обязательно будет изменен и возвращен функцией уже модифицированным, то, чтобы сохранить оригиналы без изменений, можно передать вместо исходного объекта пустой объект.
-
Примечание:
Наряду с обычным распространенным использованием, с помощью функции jQuery.extend() можно добавлять в пространство имен jQuery новые функции. Это часто применяется профессиональными разработчиками плагинов для добавления новых методов jQuery.
Например, если передать функции всего один объект, то будет считаться, что исходный объект опущен, а единственный переданный объект – это объект-источник для расширения объекта jQuery (пространства имен jQuery).
Подробнее в разделе Создание плагинов (модули расширения jQuery).
Примеры:
-
// Объединить два объекта. (Первый объект модифицируется).
var object1 = {
apple: 0,
banana: {weight: 52, price: 100},
cherry: 97
};
var object2 = {
banana: {price: 200},
durian: 100
};
$.extend(object1, object2);
// Результат:
// object1 === {apple: 0, banana: {price: 200}, cherry: 97, durian: 100}
-
// Объединить рекурсивно два объекта. (Первый объект модифицируется).
var object1 = {
apple: 0,
banana: {weight: 52, price: 100},
cherry: 97
};
var object2 = {
banana: {price: 200},
durian: 100
};
$.extend(true, object1, object2);
// Результат:
// object1 === {apple: 0, banana: {weight: 52, price: 200},
cherry: 97, durian: 100}
-
// Объединить два объекта. А чтобы ни один из них не изменился,
// передадим в качестве первого аргумента пустой объект.
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var empty = {}
var settings = $.extend(empty, defaults, options);
// Результат:
// settings == { validate: true, limit: 5, name: "bar" }
// empty == { validate: true, limit: 5, name: "bar" }
[ наверх ]
|
|