Luar's Flash Playground:正確複製Array的方法
正確複製Array的方法 (14-05-2004)
對一般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
本文章由發表。
意見
"; print "沒有意見。
 "; } ?>
  • 由chinaxman於14-05-2004發表

  • 由AQUA於20-05-2004發表

  • 原來是這樣!

    lamfan於22-05-2004發表

  • cool!

    由vincent於16-06-2004發表

  • 數組變量存儲的只是一個地址哈,原來和c道理一樣,受教。

    由old9於18-06-2004發表

  • concat() or slice()之後可否加其他function??

    hekeyo於29-06-2004發表

  • 所有的對象也都是引用

    由幻鯊於05-08-2004發表

同組文章