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

Регистрация: Apr 2010
Сообщений: 34
По умолчанию Константная переменная изменяется при работе приложения

Не пойму логику поведения программы.

Код AS3:
package engines
{
	public class PlacingShipsByPlayer
	{
		private var left_to_add:Array = ["", 4, 3, 2, 1]; 
		private static const left_to_addDefault:Array = ["", 4, 3, 2, 1];
 
 
 
		private function makeDefaultState():void
		{
			...
			left_to_add = left_to_addDefault; // тупо приравниваю 2 массива. 
			...
		}
 
// с течением времени вызывается данная функция
		private function defWhatButtsAdd():void
		{
 
			 trace( left_to_add +" / " + left_to_addDefault); //тут 2 массива равны и дефолтное состояние отличается от объявленной
 
		}
Код:
Output: ,1,1,2,1 / ,1,1,2,1
Больше нигде дефолтное состояние не применяется в коде.
Собственно вопрос: почему, в данном случае, константная переменная изменилась? И изменяется синхронно с обычным массивом (left_to_add в данном случае)


UPD: Приравнивание через For прокатило, но все равно не понятно почему происходит явление описанное выше.


Последний раз редактировалось PHILOSOFF; 23.10.2010 в 00:57.