Javascript 如何将一个对象复制到另一个对象上,而不使两个对象相互引用?

Javascript 如何将一个对象复制到另一个对象上,而不使两个对象相互引用?,javascript,Javascript,假设我们得到了这个: this.myObject={“id”:1} 我们希望将对象的状态存储为原始对象,如下所示: this.myObject=this.myObject 然后你继续你的事业,像这样改变你物体上的道具 this.myObject.id=2 让你惊讶的是,你意识到了 console.log(this.myObjectORG.id)//还报告2 这就是JS的工作原理&我并不怀疑这一点 有没有办法保存myObject的状态,这样我就可以比较它的属性自原始状态以来是否发生了更改 在某种程

假设我们得到了这个:

this.myObject={“id”:1}

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

this.myObject=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 
}
这是否有助于:-

Object.assign方法是ECMAScript 2015(ES6)标准的一部分,它完全满足您的需要

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


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

很好,但有很多ES5人员。@AverageJoe,还有多填充。好了,伙计们,我被说服了
var this.myObjectORG=Object.assign({},this.myObject)也就是说。你基本上要求的是,如何创建对象的副本,这样你就可以独立地处理对象和副本。在搜索引擎中简单搜索“如何复制js对象”将引导您找到n个答案:如果您了解问题的实质,找到答案会容易得多。希望它能帮助你解决未来的问题,这就是Ariegood的观点。同意。