Здравствуйте, гость ( Вход | Регистрация )

> Значения переменных
serenya1983
сообщение 4.07.2011 - 09:42
Сообщение #1


Участник
**

Группа: Пользователь
Сообщений: 55
Регистрация: 13.02.2010
Пользователь №: 9767



var x:Object = {test:1};
trace(x);// test:1
var y = x;
y.test = 10;
trace(x);// test:10
trace(y);// test:10
как переменной y присвоить значение переменной x и при этом что бы при изменении каждой из этих переменных изменения не затрагивали другую???
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов (1 - 4)
HaWK
сообщение 4.07.2011 - 10:38
Сообщение #2


Заряд: 100%
*****

Группа: Модераторы
Сообщений: 1118
Регистрация: 12.03.2008
Пользователь №: 4145



Код
var x:Object = {test:1};
var y:Object = {test:2};
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 4.07.2011 - 10:39
Сообщение #3


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1181
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Все дело в том, что x и y - это ССЫЛКИ на один и тот же ОБЪЕКТ.
Решить проблему можно по-разному:

Код
var x = {test:1};
trace(x.test); // 1
var y = {}
y.test=x.test
trace (y.test) // 1
y.test = 10;
trace(x.test);// 1
trace(y.test);// 10


или так (AS1):

Код
var x = {test:1};
trace(x.test); // 1
var y = {}
y.__proto__=x
trace (y.test) // 1
y.test = 10;
trace(x.test);// 1
trace(y.test);// 10


Пишу прямо сюда, без проверки. Но вряд ли ошибаюсь smile.gif


--------------------
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
serenya1983
сообщение 4.07.2011 - 10:53
Сообщение #4


Участник
**

Группа: Пользователь
Сообщений: 55
Регистрация: 13.02.2010
Пользователь №: 9767



а если структура объекта x неизвестна, и надо заполнить y теме же переменными что и x, но что б при изменении данных x или y изменения не затрагивали другой объект??? При этом объект x может быть произвольной структуры, включая вложенные объекты, т.е. например:
x = {test:1,
test2 : {
x:10,
y: {
y:1
}
}
}

Сообщение отредактировал serenya1983 - 4.07.2011 - 10:54
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
chingachgoog
сообщение 4.07.2011 - 18:31
Сообщение #5


Ветеран конференции
*****

Группа: Пользователь
Сообщений: 1181
Регистрация: 27.02.2009
Из: Moscow
Пользователь №: 9144



Есть классный цикл for in - это для 1-го варианта.
А у 2-го варианта вообще нет этой проблемы.

Сообщение отредактировал chingachgoog - 4.07.2011 - 18:33


--------------------
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 1.08.2014 - 04:32