$.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,很明了.


扫描二维码关注公众号,回复: 1786636 查看本文章

个人总结

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

                                                                                                                                                               

猜你喜欢

转载自blog.csdn.net/a578024797/article/details/80740498