對一般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
|