Показать сообщение отдельно
Старый 13.12.2008, 17:47
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Дело в том, что существуют Value и Reference Types. Когда мы приравниваем один Value Type к другому, то мы создаем копию значения. Например:
Код AS3:
var a:Number = 42;
var b:Number = a;
Теперь у нас в памяти две переменные с одинаковым значением.
Когда мы приравниваем Reference Type, мы не создаем копию объекта, а всего лишь даем ссылку на существующий объект. Например:
Код AS3:
var obj1:Apple = new Apple();
var obj2:Apple = obj1;
var obj3:Apple = obj1;
Хоть мы и создали три переменных, все равно в памяти только один объект Apple, и все на него ссылаются. Поэтому при изменении, например, obj3, obj1 тоже изменится (точнее не obj1, а тот единственный объект Apple).
Array как раз является ссылочным типом.