jQuery中的$.extend()方法使用

    技术2022-07-11  110

    $.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

    Processed: 0.015, SQL: 9