jq 两个对象合并_jq: extend

extend有两个重要功能:
1. 可以合并对象
2. 可以合并到$上

如果传多个对象,那么将合并到第一个对象上:

var people1 = {
    fanghuayong: {
    age: 24,
    sex: 'female'
    },
    luna: 20,
    tool: function() {
        console.log('自定义工具方法')
    }
}
var people2 = {
    neza: {
        age: 22,
        sex: 'male',
    }
}
$.extend(people1, people2);
console.log(people1);

eff5674beeaa44cfaab8cb15ed9f36e1.png

这是浅拷贝,如果第二个Obj的参数在拷贝后改动,第一个中对应的数据也会改动,如果需要深拷贝,只需在第一个obj前面传true即可。

$.extend(people1, people2); // 默认浅拷贝 若需要深拷贝 则只需在第一位传true即可
$.extend(true, obj, people1, people2) // 深拷贝
people2.neza.sex = 'female';
console.log(people1);
console.log(obj);

91b0781f365015551e5e2d82f0e3a703.png

如果只传一个对象,那么将合并到$上

合并求最大项 或最小项

var arr = [20, 10, 5, 55, 30];
$.extend({
    max: function(arr) {
        var max = arr[0];
        for(var i = 1; i < arr.length; i++) {
            var cur = arr[i];
            cur > max ? max = cur : null;
        }
        return max
     },
     mix: function(arr) {
         var min = arr[0];
         for(var i = 1; i < arr.length; i++) {
             var cur = arr[i];
             cur < min ? min = cur : null;
          }
         return min
     }
})

8204ba50f8196266820174e40bff8088.png

$.extend 和 $.fn.extend有什么区别:

$.extend 合并到对象上 工具方法
$.fn.extend 合并到原型prototype上 实例方法

var obj2 = {
    aa: function() {
        console.log('实例方法')
    }
}
 $.fn.extend(obj2);

01cdb37a85a940d48826a3d2e3681cc9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值