$.extend静态方法

$.extend

这是jq对象的方法 是一个静态方法 与$.fn.extend()无关

$.extend  简单两种用法

 //浅
    let extendTTT = $.extend( obj1, obj2);
// 
extendTTT = $.extend({}, obj1, obj2);
console.log(extendTTT);

第一条 代码 改变了 obj1的结构 如果obj2里的属性与obj1的属性名相同就会覆盖obj1里的属性,通俗来讲 越靠后的参数,越牛X

第二条 代码 与第一条大致相同 {},代表 我不想改变结构,只不过生成了一个新对象,作用与第一条相同


//深度

 let obj1 = {
            name: "xiaoming",
            // parents:{
            //     father:"xiaolv",
            //     mother:"xiaoji",
            //     grandfather:"dalvlvl",
            // },
            parents: {
                hoa: ["xialv", "xiaoji", "aa"],
                pp: ["11"],
            },
            sadasd: "asdasdsad",
        };
        let obj2 = {
            name: "damingming",
            // parents:{
            //     father:"dalv",
            //     mother:"daji", 
            // },
            parents: {
                bba: ["father", "mother", "grandfather"],
                cc: [1],
                hoa: [2],
            },
            teett: "sadasd",
        };
//浅
        let extendTTT = $.extend({}, obj1, obj2);
        console.log(extendTTT);
 extendTTT = $.extend(true, {}, obj1, obj2);

深拷贝

        如果想要使用深拷贝,那么第一个参数 应该为true (浅拷贝 不用写false,默认就是),深拷贝 个人理解主要是用在 ,如果属性是对象,那么深拷贝会去覆盖这个对象的属性,并把添加obj1没有的属性,而浅拷贝 是直接覆盖了obj1的这个同名属性,主要对比 parents,很明了.


个人总结

        $.extend  主要用于 在自己写插件时 替换 默认的参数,来达到让用户自定义的目的 (目前只想到这么多)

                                                                                                                                                               

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值