记得学C/C++的时候,一直跟指针纠结过。在OOP中虽然用引用代替了指针,但倘若不注意,还是会被小绊一下的。下面以AS3中的数组为例,谈谈对象的“深浅”拷贝。
先来看Demo1,这个是没有使用拷贝的情况下,直接进行赋值的。
Demo1:
//复本只保存了引用
var arrO:Array=[10,20,30];
trace("源数组:"+arrO);
var arrCopy:Array=arrO;
trace("复本:"+arrCopy);
arrCopy[0]=50;
trace("更改了arrCopy[0]后,源数组:"+arrO+",复本:"+arrCopy);
结果当然很容易猜到:
源数组:10,20,30
复本:10,20,30
更改了arrCopy[0]后,源数组:50,......
阅读全文