2010-01-14 31 views

回答

1

是的。来自:http://docs.jquery.com/Utilities/jQuery.extend

用一个或多个其他对象扩展一个对象,返回修改后的对象。 如果未指定目标,则会扩展JQuery名称空间本身。这对希望向JQuery添加新方法的插件作者非常有用。

请记住,目标对象将被修改,并将从extend()返回。

如果布尔值true指定为第一个参数,JQuery将执行深度复制,递归复制它找到的任何对象。否则,副本将与原始对象共享结构。 未复制的属性未被复制。但是,从对象原型继承的属性将被复制。

0

true表示在提供的两个对象之间产生了深层复制。

什么扩展是以第一个对象作为基础(参数#2),并用第二个对象“扩展”它。

the jQuery docs

var settings = { validate: false, limit: 5, name: "foo" }; 
var options = { validate: true, name: "bar" }; 
jQuery.extend(settings, options); 
// settings == { validate: true, limit: 5, name: "bar" } 

true作为第一个参数意味着该扩展是在一个“深”时尚正在做,让老对象引用不再发生。

0

$.extend()的后续参数被合并为一个对象。第一个参数(true)是说做一个深层复制。

用一个或多个其他 扩展一个对象,返回修改的对象。 如果未指定目标,则将扩展JQuery 命名空间本身。对于希望 向JQuery添加新方法的插件作者,这可能是有用的。保留 请注意,目标对象将被修改为 ,并将从 extend()返回。

如果一个true被指定为 第一个参数,JQuery的执行深 拷贝,复制递归发现的任何对象 。否则,该副本将与原始 对象共享结构 对象。

未复制未定义的属性。 但是,从 对象的原型继承的属性将被复制 。