Object.assign()合并多个对象

Object.assign()

作用:合并多个对象。
用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
现有对象A,对象B,如果要把A对象的属性的值复制到B上,可以使用Object.assign(B,A);

注:如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。

语法

Object.assign(target, ...sources)
  • 参数:target:目标对象。sources:源对象。
  • 返回值:目标对象

实例:合并多个对象。第一个参数表示目标对象,对象会被改变。第二个参数,第三个参数都表示源对象,不会被改变。
注:如果对象属性一样时,后面的会覆盖前面的属性值。

let obj1={a:1,b:2};
let obj2={b:3,c:4};
//将obj1,obj2的属性合并成一个新的对象
let obj3=Object.assign(obj1,obj2);
console.log(obj3);//{a: 1, b: 3, c: 4}

//注意obj1会被改变
console.log(obj1);//{a: 1, b: 3, c: 4}

//obj2的值不会被改变
console.log(obj2);//{b: 3, c: 4}

复制对象,不改变源对象,第一个参数可以为一个空{}

let obj1={a:1,b:2};
let obj2=Object.assign({},obj1);
console.log(obj2)

实例

var a={name:'lisa',age:12};
var b={adress:'北京'};
Object.assign(b,a);
//此刻b的值为{adress: "北京", name: "lisa", age: 12}
//a的值不变{name: "lisa", age: 12} 

上述例子中,对象b要复制对象a的属性值。

实例2:

var a={name:'lisa',age:12};
var b={name:'jack',adress:'北京'};
Object.assign(b,a);
//b的结果{name: "lisa", adress: "北京", age: 12}
//a的结果{name: "lisa", age: 12} 

上述例子中我们发现,a和b都有属性name,使用Object.assign()后,源对象的属性值会覆盖目标对象的属性值。

例子3,复制一个对象

var a={name:'lili'};
var b=Object.assign({},a);
console.log(b);//{name: "lili"}

例子4,合并一个对象

var a={name:'lili'};
var b={age:12};
var c={address:'北京'};
var d=Object.assign({},a,b,c);
console.log(d);//{name: "lili", age: 12, address: "北京"}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值