正确复制Array的方法 (本文章由luar发表)

      flash杂项 2004-8-4 1:7
正确复制Array的方法 (

对一般Variable,用=有复制的作用,例如∶


a = 1;
b = a;
trace(a+", "+b); // 1,1
b = 2;
trace(a+", "+b); // 1,2

新Variable如有改变,是不会影响旧复制Variable。

但是应用在Array上,=实际上是Reference的作用,用另一个名称指向同一组Array,因此改变新Array等於同时改变旧Array,例如∶

a = [1, 2, 3];
b = a;
trace(a+" - "+b); // 1,2,3 - 1,2,3
b[1] = 5;
trace(a+" - "+b); // 1,5,3 - 1,5,3

如果要复制Array,应该用slice()或concat()∶

a = [1, 2, 3];
b = a.slice();
trace(a+" - "+b); // 1,2,3 - 1,2,3
b[1] = 5;
trace(a+" - "+b); // 1,2,3 - 1,5,3





标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}
}