Object.assign(target, sources)方法

之前有写过用this.set可以及时更新数据,除了这个方法还可以用Object.assign(target,sources)方法下面将介绍一下这个用法先看不用this.set可以及时更新数据,除了这个方法还可以用Object.assign(target, sources)方法 下面将介绍一下这个用法 先看不用this.setObject.assign(target,sources)this.set用Object.assign(target, sources)方法的例子

原因是使用了这个方法为对象添加属性后,他的身上就多了get和set方法,所以再次操作该属性的时候,视图就会及时更新了。

Object.assign()用法讲解

语法: Object.assign(target, …sources) target: 目标对象,sources: 源对象
用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);

console.log(target); // Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget); // Object { a: 1, b: 4, c: 5 }

注意:
Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
还有就是Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的是这个对象的引用。

用法:

  1. 复制一个对象;
    const obj = { a: 1 };
    const copy = Object.assign({}, obj);
    console.log(copy); // { a: 1 }
  2. const o1 = { a: 1 };
    const o2 = { b: 2 };
    const o3 = { c: 3 };

const obj = Object.assign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, 注意目标对象自身也会改变。
3. 合并具有相同属性的对象:
const o1 = { a: 1, b: 1, c: 1 };
const o2 = { b: 2, c: 2 };
const o3 = { c: 3 };

const obj = Object.assign({}, o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 },注意属性被后续参数中具有相同属性的其他对象覆盖

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值