如何在JavaScript中复制对象而不是在尝试中死亡。这是一个相对复杂的问题,因为您必须考虑JavaScript的工作原理以及内存引用的处理方式,但是一旦理解它,您将不再遇到问题。
假设我们有一个产品安排,需要添加一个新物业,并为每种产品的相应税收。第一个是用地图旅行安排,因为我们知道这是不变的,这意味着它不会影响原始布置。
好吧,让我们看看会发生什么,如果我们执行以下代码,将会发生的情况是,我们拥有的地图将生成新的安排,并将其添加税款并返回对象。
但是,当我们审查时,我们会看到原始布置和新产品的安排受到影响,但是为什么会发生这种情况?当JS管理内存参考以解决此问题时,我们需要制作副本对象的。
为此,我们将占据解构并查看我们得到的结果。使用解构器,我们生成对象的副本,并添加新属性属性,并将其保持在常数之内,以返回该功能。
现在我们有了我们需要的结果,这很好,但是现在我们将看到一个常见的问题,是对象的深层副本。解构仅服务于一个级别,在这种情况下是第一个级别,但是如果我们修改副本中的商店的布置。
好吧,如果我们通过新对象修改了通过解构进行的副本,并且希望消除安排中的最后一个可用的商店,我们将看到发生了什么。
原始物体的布置也受到影响,但是他妈的!这是我们可以犯的一个错误,我们将看到如何解决该问题,以便我们可以深入对象副本。
最简单的方法是将对象转换为字符串类型的JSON,并在此使用此操作再次转动后,我们向自己保证,JS相信一个新的独立内存段,现在我们可以修改新对象不怕影响原始的。
这只是制作深副本的一种方式,但可以以不同的方式完成。
如果您喜欢这篇文章