js对象常用API(一)之Object.assign(浅拷贝)的理解及使用

 var newObj = Object.assign(target,source1,source2);

       target---------------------------目标对象,即合并后最终呈现的对象

       source1、source2--------------要进行合并的源对象

       newObj-------------------------该对象方法的返回值,等同于目标对象

      该方法会将源对象source1、source2自身的属性进行拷贝,合并到目标对象target上,而不拷贝源对象继承的属性,即              prototype的属性不进行拷贝;

            example1:目标对象存在源对象上的属性,则该属性的值会被源对象相对应的属性的属性值覆盖掉;

                 const target = {

                      x : 0,

                      y : 1

                 };

                 const source = {

                       x : 1,

                       z : 2 ,

                       fn : {

                          number : 1

                        }

                 };

                 Object.assign(target, source);  

                //console.log( target,"target" );     //  target  {x : 1, y : 1, z : 2, fn : {number : 1}}

                //console.log( source,"source" );    // source  {x : 1, z : 2, fn : {number : 1}}

               此时,目标对象已经浅拷贝成功源对象,二者的共有属性已绑定,修改目标对象时,源对象对应的属

           性及其值也会相应的发生变化

               target.fn.num = 2;

              //console.log( source,"source" );    // source  {x : 1, z : 2, fn : {number : 2}}

        example2:只能拷贝自身的属性,不能拷贝prototype

             function Person(){

                   this.name = 1

               };

              Person.prototype.country = 'china';

              let student = new Person();

              student.age = 29 ;

              const young = {insterst : 'sport'};

              Object.assign(young,student);

              //console.log(young) young {instest : 'sport' , age : 29, name: 1}    

        example3:数组会当成对象处理,其索引下标值作为属性来进行合并

              var newObj = Object.assign([1, 2, 3], [4, 5])                     

             //console.log( newObj ) // [4, 5, 3]  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值