Следующий jQuery не меняет значения по умолчанию или опций. Возвращаемое значение совпадает с пустым. пустой был изменен и заполнен объединенными данными. Все хорошо.
var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
$.extend(empty, defaults, options);
Однако я видел, как кто-то передает истину в качестве первого варианта.
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var output = $.extend(true, defaults, options);
В этом случае значения по умолчанию были изменены. Опции такие же, а возвращаемое значение такое же, как и значения по умолчанию.
Теперь попробуйте передать false.
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var output = $.extend(false, defaults, options);
В этом случае значения по умолчанию и параметры не изменяются. Таким образом, передача true такая же, как
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var output = $.extend(defaults, options);