Друзья, поясните мне, пожалуйста, ещё один момент.
Столкнулся с такой ситуацией. Создаю в неком классе массив, наполняю какими-то элементами. Передаю в конструктор другого класса, которому поручено переписать все элементы полученного массива "к себе" и как-то с ними поработать, но (самое главное!) оставить в целости оригинальный массив, полученный из вне. Но вот такая запись:
Код AS3:
private var _intermalArray: Array = [];
public function SomeClass(externalArray: Array)
{
_internalArray = externalArray;
}
как выяснилось, ни фига не делает дубликат массива, а лишь передаёт ссылку. И все изменения отражаются также и в исходном. Так и должно быть? И вообще всегда ли при передаче переменных, содержащих некий объект, передаётся только ссылка на сам объект? Как-то я не чувствую логики.
P.S. Задачу пока что решил через цикл, который последовательно перебирает элементы полученного массива и записывает по одному во внутренний. В таком случае они действительно разными получаются.