摘自API:
jQuery.extend([],target,object1,[objectN])
用一个或多个其他对象来扩展一个对象,返回被扩展的对象.
如果不指定target,则给JQuery命名空间本身进行扩展.这有助于插件作者为jQuery增加新方法,如果第一个参数设置为true,则jQuery返回一个深层次的副本.递归地复制找到的任何对象.否则的话,副本会对原对象共享结构.未定义的属性将不会被复制.然而从对象的原型继承的属性将会被复制.
target:一个对象,如果附加的对象被传递给这个方法 ,它将接受新的属性,如果它是唯一的参数将扩展jQuery的命名空间.
object1:待合并到第一个对象的对象.
objectN:待合并到第一个对象的队形.
示例:
1. 合并setting和options,修改并返回setting 代码 var setting = {validate:false,limit:5,name:"foo"}; var options = {validate:true,name:"bar"}; jQuery.extend(settings,options); 结果: settings = {validate:true,limit:5,name:"bar"} 2. 合并defaults和options,不修改defaults. 代码: var empty = {}; var defaults = {validate:true,name:"bar"}; var settings = jQuery.extend(empty,defaults,options); 结果: settings == {validate:teue,limit:5,name:"bar"} empty == {validate:true,limit:5,name:"bar"}
var newcss = jQuery.extend(css1,css2) newcss 就是合并的新对象 css1的属性被覆盖.而且会继承css1没有的css2的属性
var newcss = jQuery.extend({},css1,css2) newcss就是合并的新对象,而且没有破坏css1的结构.
摘自 博客:
1.扩展jQuery静态方法
$.extend({
test : function(){alert("test函数")}
})
用法: $.test()
2.合并多个对象:
3.深度嵌套对象:
新的extend()允许你更深程度的合并嵌套对象.
//以前的 .extend() jQuery.extend( {name:"john",location:{city:"Boston"}}, {last:"Resig",location:{state:"MA"}} ); 结果: {name:"john",last:"Resig",location:{state:"MA"}} //新的更深入的 .extend() jQuery.extend(true, {name:"John",location:{city:"Boston"}}, {last:"Resig",location:{state:"MA"}} ); 结果: {name:"John",last:"Resig",location:{city:"Boston",state:"MA"}}
I got it