Это лучше всего объяснить с образцом
var firstObject = {
"hello": "jonkers",
};
var secondObject = {
"stradivarius": "bonkers"
};
console.log(firstObject);
>> Object {hello: "jonkers"}
$.extend(firstObject, secondObject);
console.log(firstObject);
>> Object {hello: "jonkers", stradivarius: "bonkers"}
Но что подразумевает true
части? Это логическое значение, которое сообщает функции $.extend
, что должно быть выполнено глубокое копирование .
Глубокая копия, вы говорите!
Существует два разных типа «копирования», когда речь идет о объектах, которые применяются ко многим языкам, а не только к JavaScript, и это shallow
и deep
. Мелкая копия - это когда вы просто берете ссылки на этот объект (и все, что содержит), и делаете дубликат, ведущий к значениям, измененным в copy_object
, отражается в original_object
. Глубокая копия - настоящий бренд, шлепающий новый объект, который вы можете манипулировать тремя способами в воскресенье, не затрагивая original_object
.
Последний пример, о котором вы хотите узнать, - это тот же самый вызов, за исключением того, что в первый объект будет добавлено еще несколько объектов. Поэтому вызов апи будет
$.extend(true, firstObject, secondObject, third, fourth, n-objects);
Чтение больше об этом можно сделать
http://api.jquery.com/jQuery.extend/
http://blog.imaginea.com/deep-copy-in-javascript/
посмотреть здесь http://api.jquery.com/jQuery.extend/ – PSR