$.extend用法
- extend的作用
将两个或更多对象的内容合并到第一个对象。 - 函数原型
jQuery.extend( [deep ], target, object1 [, objectN ] )
其中的deep是一个boolean值,true表示深拷贝,target表示的是会合并到哪个对象,后面的object表示的被合并的对象,extend的结果会返回一个合并了所有属性的对象给你,如果存在同属性名,后合并的对象的属性值会取代前面已经合并好的属性值。
例子
- 例一(原有对象合并)
obj1={
name:"kevin",
age:"185",
arr:[1,2,3]
};
obj2={
name:"adam",
address:"拉布拉多"
};
var obj3=$.extend(obj1,obj2);
console.log(obj3);
//结果:
//[object Object] { address: "拉布拉多", age: "185", arr: [1, 2, 3], name: "adam"}
//obj3==obj1//true
//obj1//[object Object] { address: "拉布拉多", age: "185", arr: [1, 2, 3], name: "adam"}
- 例二(新对象,浅拷贝)
obj1={
name:"kevin",
age:"185",
arr:[1,2,3]
};
obj2={
name:"adam",
address:"拉布拉多"
};
var obj3=$.extend({},obj1,obj2);
console.log(obj3===obj1);//false
console.log(obj3.arr===obj1.arr)//true
- 例三(新对象,深拷贝)
obj1={
name:"kevin",
age:"185",
arr:[1,2,3]
};
obj2={
name:"adam",
address:"拉布拉多"
};
var obj3=$.extend(true,{},obj1,obj2);
console.log(obj3===obj1);//false
console.log(obj3.arr===obj1.arr);//false
网友评论