Показать сообщение отдельно
Старый 09.02.2010, 06:07
inferrum вне форума Посмотреть профиль Отправить личное сообщение для inferrum Найти все сообщения от inferrum
  № 1  
Ответить с цитированием
inferrum

Регистрация: Jun 2007
Сообщений: 83
По умолчанию Копирование объекта.

Возникла парочка вопросов.Подозреваю что вопросы ламерские, но я что-то не догоняю.

1.
Создаём два массива:

var testArray1:Array=new Array(1,2,3);
var testArray2:Array=new Array(0,0,0);

Нужно скопировать массив testArray1 в testArray2.
Не ссылку, а сам объект.То есть если бы обе переменные были типа int мы бы написали testArray2=testArray1, а тут как?Не используя цикл.

2.
Код AS3:
public class A 
{   
     public var testArray:Array;
 
     public function A() 
       {
          testArray=new Array(1,2,3);
          var testClass:B=new B(testArray);
          testFunc();
       }
 
     public function testFunc();
       {
          trace(testArray);//в первом случае выводит 1,2,3
                                //во втором случае выводит 2,3
        }
}
public class B 
{   
 
     public function B(testArray:Array) 
       {
         // 1.В первом варианте присваиваем напрямую     testArray=[0,0,0]; 
         // 2.Во втором пытаемся обрезать первый элемент testArray.shift();
       }
 
}
Почему в первом случае массив в классе A остался неизменным, а во втором изменился?