我在我的模型中有一些值存储。我需要创建这些值的副本,进行一些更改,然后输出这些更改而不影响模型值。Adobe Flex ActionScript防止模型污染
var my_source:Array = model.something.source
var output:Array = new Array();
for each (var vo:my_vo in my_source) {
if (vo.id == 1) {
vo.name = 'Foo';
output.push(vo);
}
else if (vo.id == 21) {
vo.name = 'Bar';
output.push(vo);
}
}
return output;
因此,这工作正常,除了循环通过my_source时所做的任何更改似乎也影响model.something。为什么更改my_source数组会影响模型?我如何防止这种情况发生?
对于'ObjectUtil.copy()'+1。打败我的串行器/解串器方法:) – 2011-03-30 01:59:41
@布莱恩,这是一个好主意。你的序列化程序本质上就是ObjectUtil.copy所做的:) – 2011-03-30 14:24:19