js合并两个对象

代码映星客
• 阅读 37613

1.extend()

    var obj1 = {
        a:1,
        b:2
    };
    var obj2 = {
        c:3,
        d:4
    };
    var assignObj = $.extend(obj1,obj2);
    console.log('assignObj',assignObj);
    console.log('obj1',obj1);
    console.log('obj2',obj2);

js合并两个对象
可以发现obj1的值被改变了。

    var obj1 = {
        a:1,
        b:2
    };
    var obj2 = {
        c:3,
        d:4
    };
    var assignOObj = $.extend({},obj1,obj2);
    console.log('assignOObj',assignOObj);
    console.log('obj1',obj1);
    console.log('obj2',obj2);

js合并两个对象
extend()中加一个空对象,obj1的值就不会被改变。

2.遍历

    var obj1={a:1};
    var obj2={b:2,c:3};
    for(var key in obj2){
        if(obj2.hasOwnProperty(key)===true){
        //此处hasOwnProperty是判断自有属性,使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问会避免原型对象扩展带来的干扰
            obj1[key]=obj2[key];
        } 
    }
    console.log(obj1);
    console.log(obj2);

js合并两个对象
3.Obj.assign()
可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。
Object.assign(target, ...sources)

    var obj1 = {
        a:1,
        b:2
    };
    var obj2 = {
        c:3,
        d:4
    };
    var assignObj = Object.assign(obj1,obj2);
    console.log('assignObj',assignObj);
    console.log('obj1',obj1);
    console.log('obj2',obj2);

obj1的值也被改变了,和$.extend()类似.

    var obj1 = {
        a:1,
        b:2
    };
    var obj2 = {
        c:3,
        d:4
    };
    var assignOObj = $.extend({},obj1,obj2);
    console.log('assignOObj',assignOObj);
    console.log('obj1',obj1);
    console.log('obj2',obj2);

js合并两个对象

点赞
收藏
评论区
推荐文章
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
springboot源码分析
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)
Stella981 Stella981
3年前
Spring5.0源码深度解析之理解Configuration注解
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)
Stella981 Stella981
3年前
Spring5.0源码深度解析之Spring核心注解
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)
Stella981 Stella981
3年前
Spring5.0源码深度解析之SpringBean的Aop的使用
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)
Stella981 Stella981
3年前
Spring5.0源码深度解析之SpringBean的Aop源码分析
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)SpringAop源码分析
Stella981 Stella981
3年前
Spring5.0源码深度解析之SpringBean声明事务底层实现原理
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)
Stella981 Stella981
3年前
Spring5.0源码深度解析之SpringBean的Aop通知调用链源码分析
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)SpringAOP原理探究
Stella981 Stella981
3年前
Spring5.0源码深度解析之SpringBean循环依赖问题解决方案
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)
Stella981 Stella981
3年前
Spring5.0源码深度解析之容器的功能扩展
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)版权所有:https:/
Stella981 Stella981
3年前
Spring5.0源码深度解析之SpringBean的生命周期
!(https://gss1.bdstatic.com/vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign0c730b84bd19ebc4c078719fba1da8c1/37d12f2eb9389b503a80d4b38b35e5dde6116ed7.jpg)