克隆解析服务器对象

Clone Parse Server object

我有一个 Parse 对象(嗯,一个 parse 对象数组)。我想克隆对象,但我尝试的一切都失败了……因为更改原始对象属性也会更改克隆的相应属性。我试过使用 Parse.Object.clone(),创建新的对象数组,更改为 JSON,然后进行深度克隆,但没有任何效果。经过一些研究,我遇到了 this and 但这确实提供了一个真正的解决方案。

有没有什么好办法克隆Parse对象,让属性完全分离??

我基本上想要一个 'cancel' 更改按钮,它会恢复到克隆版本而不保存。

Parse.Object.clone() 发生了什么?这似乎应该是你想要的。

iOS(可能还有 android)SDK 在对象上有一个还原方法,可以重置为上次保存/获取对象的时间。

请记住,对于 javascript 中的对象,将它们传递给函数或多或少会被视为按引用传递,因此函数内的更改会更改传入的对象。有时有用,有时令人讨厌.

如果 Parse.Object.clone() 不起作用,我的下一个建议虽然很烦人,但会创建一个新对象 shell 并在需要时获取/查询该对象包括何时你需要 "reset" 数据。

Parse.Object.clone returns 浅拷贝。对于深层复制(完全独立的对象),我编写并使用了以下代码:

var originalObject = ...
var objectJSON = originalObject.toJSON();
delete objectJSON.objectId; // force it to be a new DB object if you save it
var twin = new Parse.Object( object.className );
twin.set( objectJSON );

我认为 Parse.Object.deepClone 方法会很好...