$.extend()函数用于将一个或多个对象的内容合并到目标对象
用法1:只有一个参数,表示将该参数添加到全局对象jQuery中,可以用 $. 来获取值。
测试1-1:$.extend({test:100}); alert($.test); // 弹出框会显示100;
测试1-2:var fun = function(i){alert(i)}; $.extend({test:fun}); $.test(200); // 弹出框会显示200;
用法2:有多个参数,所有参数都是对象,表示将这些对象的属性合并到第一个参数中,返回值也是第一个参数对象
测试2-1:
var obj1 = {name1:'墨倾池'}; var obj2 = {name2:'夏承凛'}; var obj3 = {name3:'问奈何'}; var obj = $.extend(obj1, obj2, obj3); alert(obj.name2);// 弹出夏承凛 alert(obj1.name3);// 弹出问奈何
用法3:有多个参数,第一个参数是“true”,不是对象,表示深度合并,也就是,如果这些参数有相同的属性名,这些属性也是对象的话,将这些属性也合并(第一个参数不写的话,默认是false,就不深度合并,这时相同的属性后面会替换前面的,不要手动写false,会出问题)
测试3-1:写上true,man属性合并
var obj1 = {man:{name1:'墨倾池'}}; var obj2 = {man:{name2:'夏承凛'}}; var obj3 = {name3:'问奈何'}; var obj = $.extend(true, obj1, obj2, obj3); alert(obj.man.name1);// 弹出墨倾池 alert(obj.man.name2);// 弹出夏承凛
测试3-2:不写true,man属性替换
var obj1 = {man:{name1:'墨倾池'}}; var obj2 = {man:{name2:'夏承凛'}}; var obj3 = {name3:'问奈何'}; var obj = $.extend(obj1, obj2, obj3); alert(obj.man.name1);// 弹出undefined alert(obj.man.name2);// 弹出夏承凛
参考自菜鸟教程:https://www.runoob.com/jquery/misc-extend.html