Object.assign
Object.assign可以用于js对象浅复制。语法:Object.assign(target, source1, source2);
第一个参数为目标对象,后面的为要合并的对象(源对象)。
let obj={
a:2,
b:4
}
Object.assign({}, obj, {c:6}); // 将{c:6}与obj合并 返回{a:2,b:4,c:6}
当属性名相同时,新增的会覆盖原来的属性
Object.assign只会拷贝对象本身的属性,不拷贝继承属性,不拷贝不可枚举对象。
当项目中遇到vue视图不及时刷新的问题,使用Object.assign重新创建一个对象,给视图对象重新赋值,可以解决vue中视图不及时刷新的问题。
本人项目案例:
skuConfirm(sku) {
this.changeSku = sku;
this.list.forEach(x => {
if (x.salesOrderDetailId == this.cursor) {
x.outProductId = sku.productId;
x.outProductName = sku.productName;
x.outProductCode = sku.productCode;
x.outSkuId = sku.skuId;
x.outSkuCode = sku.skuCode;
x.outSkuName = sku.skuName;
this.$forceUpdate();
}
});
this.list = Object.assign([], this.list, this.list);
}
原文:https://www.cnblogs.com/smallcupforke/p/14823447.html