jQuery中extend();
jQuery.extend([deep], target, object1, [objectN]);
用一个或多个其他对象来扩展一个对象,返回被扩展的对象。
如果不指定target,则给jQuery命名空间本身进行扩展。这有助于插件作者为jQuery增加新方法。 如果第一个参数设置为true,则jQuery返回一个深层次的副本,递归地复制找到的任何对象。否则的话,副本会与原对象共享结构。 未定义的属性将不会被复制,然而从对象的原型继承的属性将会被复制。
deep:如果设为true,则递归合并。
target:待修改对象。
object1:待合并到第一个对象的对象。
objectN:待合并到第一个对象的对象。
例一:
var a = { validate: false, limit: 5, name: "foo" };
var b = { validate: true, name: "bar" };
jQuery.extend(a, b);//没有设置deep属性,本身扩展
a == { validate: true, limit: 5, name: "bar" }
例二:var a= {
prop1:"aaa",
prop2:"bbb"
}
var b = {
prop1:"aaaaaa",
prop3:"cccccc"
}
var c = $.extend(true,{},a,b);
console.log(c);//输出结果 Object{
prop1:"aaa",
prop2:"bbb"
}
var b = {
prop1:"aaaaaa",
prop3:"cccccc"
}
var c = $.extend(true,{},a,b);
console.log(c);//输出结果 Object{
console.log(a);//不变
console.log(b);//不变
//