如何在不引用对象的情况下将对象复制到另一个对象上?

时间:2017-12-12 14:22:48

标签: javascript

我们说我们得到了这个:

this.myObject = {"id":1};

我们希望将对象的状态存储为我的对象原始,如下所示:

this.myObjectORG = this.myObject;

然后你继续开展业务并改变对象上的道具

this.myObject.id = 2;

并且让你意外的是,你意识到了

console.log(this.myObjectORG.id)//也报告2

嗯,那就是JS的工作原理和方式。我没有质疑。

有没有办法保留myObject的状态,所以我可以比较它的属性是否因其原始状态而改变了?

在某些时候,我希望能够做这样的事情

if ( this.myObjectORG.id !== this.myObject.id ) {
   // but this condition is never true 
}

1 个答案:

答案 0 :(得分:3)

这有用吗: -

Object.assign方法是ECMAScript 2015(ES6)标准的一部分,完全符合您的需求。

var this.myObjectORG = Object.assign({},this.myObject);

Object.assign()方法用于将所有可枚举的自有属性的值从一个或多个源对象复制到目标对象。