$.extend()
是 jQuery 中用于合并对象的常用方法,可以将两个或多个对象的属性合并到第一个对象中,并返回合并后的对象。
1. 用法描述
$.extend(target, object1, [objectN])
用于将 object1
到 objectN
中的属性合并到 target
对象中。合并后的值会返回给 target
对象。
2. 常规用法
示例1:直接合并对象
在此用法中,$.extend()
将第二个对象的属性合并到第一个对象中,改变了第一个对象的属性值。
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
console.log(settings);
// 输出: { validate: true, limit: 5, name: "bar" }
示例2:保护原始对象
如果希望在合并时不改变原始对象的值,可以通过将合并的结果放入一个新的空对象中。这种做法可以保护默认值。
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
// 使用一个空对象作为目标对象
var result = jQuery.extend({}, settings, options);
console.log(settings);
// 输出: { validate: false, limit: 5, name: "foo" }
console.log(result);
// 输出: { validate: true, limit: 5, name: "bar" }
优点
- 灵活性:可以轻松合并多个对象。
- 保护原始值:通过使用空对象作为目标,可以避免修改原始对象的属性值。
使用 $.extend()
方法可以有效地合并对象,在处理配置项或初始化参数时尤为常用。合理利用它可以简化代码逻辑并提高代码的复用性。