jquery $.extend
时间: 2023-08-20 16:31:56 浏览: 93
`$.extend()` 方法可以将多个对象合并成一个对象。它的语法如下:
```
$.extend([deep], target, object1, [objectN]);
```
其中,`deep` 参数表示是否进行深度合并,如果为 `true`,则会递归合并对象;`target` 参数表示目标对象,合并结果将会合并到该对象中;`object1`、`objectN` 参数表示要合并的对象,可以有多个。
例如,以下代码将会创建一个新的对象,包含了 `object1` 和 `object2` 中的所有属性和方法:
```
var object1 = {name: 'Tom', age: 18};
var object2 = {gender: 'male', address: 'Beijing'};
var result = $.extend({}, object1, object2);
console.log(result); // {name: 'Tom', age: 18, gender: 'male', address: 'Beijing'}
```
在上面的代码中,首先创建了两个对象 `object1` 和 `object2`,然后使用 `$.extend()` 方法将这两个对象合并成一个新的对象 `result`。
需要注意的是,如果目标对象和要合并的对象拥有同名的属性或方法,那么后面的对象将会覆盖前面的对象。如果要进行深度合并,可以将 `deep` 参数设置为 `true`,例如:
```
var object1 = {name: 'Tom', age: {year: 18, month: 6}};
var object2 = {age: {month: 7}};
var result = $.extend(true, {}, object1, object2);
console.log(result); // {name: 'Tom', age: {year: 18, month: 7}}
```
在上面的代码中,`object1` 对象中的 `age` 属性是一个对象,`object2` 对象中的 `age` 属性也是一个对象。如果不进行深度合并,那么 `object2` 中的 `age` 属性将会覆盖 `object1` 中的 `age` 属性,导致 `year` 属性被删除。因此,需要将 `deep` 参数设置为 `true`,才能递归合并 `age` 属性中的属性和方法。
阅读全文