ActionScript3中关于数组深浅拷贝的问题

     在AS3中数组和对象是非基本类型,在和赋值相关的操作中都是复制引用。

      例:var a:Array=new Array(1,2,3);

             var  b:Array=new Array();

             b=a;

             这个时候b其实是持有指向a的引用。如果对a做修改,b也会被修改。这种情况的赋值是很明显的,有些时候的赋值则不这么明显。

            首先,是利用数组传参的时候需要注意,

           然后,是利用数组做为返回值的时候也需要注意,如下例

           package {
                 import flash.display.Sprite;

                 public class CopyTest extends Sprite
                 {
                        private var testarray1:Array=new Array(1,2,3);
                        private var testarray2:Array=new Array(); 
  
                        public function CopyTest(){
                                  testarray2=returnArray();  
                                  testarray1[0]=2;
                                  trace(testarray2);
                        }
  
                       public function returnArray():Array{
                               var test:Array=new Array();
                               for(var i:int=0;i<testarray1.length;i++){
                               test[i]=testarray1[i];
                                 }
                                return test;
                     }
                }
         }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值