正确复制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
对一般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
回复Comments
作者:
{commentrecontent}