Javascript 杀掉一个;“生活”;抽象数据对象

Javascript 杀掉一个;“生活”;抽象数据对象,javascript,ractivejs,Javascript,Ractivejs,使用RactiveJS,设置为Ractive数据的对象将变为“活动”,因为库添加了一些处理程序来检测数据中的更改。但是,如果我想在另一个不使用Ractive的位置使用相同的对象,例如: var objectForModuleB = objectForModuleA.get(); 修改objectForModuleB会影响objectForModuleA中的数据,因为对象仍然是“活动的”。我通过“执行stringify解析”来删除处理程序(我只处理数据,没有计算函数和日期对象): 如果您已经一遍

使用RactiveJS,设置为Ractive数据的对象将变为“活动”,因为库添加了一些处理程序来检测数据中的更改。但是,如果我想在另一个不使用Ractive的位置使用相同的对象,例如:

var objectForModuleB = objectForModuleA.get();
修改
objectForModuleB
会影响
objectForModuleA
中的数据,因为对象仍然是“活动的”。我通过“执行stringify解析”来删除处理程序(我只处理数据,没有计算函数和日期对象):

如果您已经一遍又一遍地阅读了文档。到目前为止,我在文档中还没有遇到类似的问题。

最初是在上回答的

你只需要深度克隆<代码>$。extend是实现此目的的正确工具
JSON.parse(JSON.stringify())
也可以工作,这取决于您的数据,但速度很慢。如果您不想使用jQuery,您可以创建自己的函数,或者从jQuery的核心获取它

如果您只想阻止在更复杂的实例之间共享数据,可以使用选项函数(v0.5.x):


这样,将为每个ractive实例创建新数据。

您是指数组修改方法,还是在选项中使用
magic:true
?您能否提供更多关于对象结构的详细信息,以及您希望它的行为方式?我只是想把Ractive和javascript对象引用的问题分开issues@martypdx我相信我没有使用魔法模式。
var objectForModuleB = JSON.parse(JSON.stringify(objectForModuleA.get()));
new Ractive({
    data: function () {
        return {
            x: 1,
            y: 2 
        };
    }
});