![]() |
|
||||||||||
|
|||||
|
У меня есть какой-то объект
my_obj1 = {id:33, par1:123, ..., parN:eeee} его нужно скопировать в другой если я напишу my_obj2 = my_obj1 то у меня в my_obj2 будет ссылка на объект my_obj1 (я же правильно рассуждаю), а мне нужно чтоб в my_obj2 был объект идентичный my_obj1. я конечно понимаю что можно копировать каждый параметр отдельно, а можно сделать это как нить по проще ? |
|
|||||
|
Регистрация: Jun 2005
Сообщений: 40
|
пиши свой метод. по другому никак
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Как было:
obj1 = {a:11};
obj2 = obj1;
trace (obj1.a);
trace (obj2.a);
obj2.a = 22;
trace ("");
trace (obj1.a);
trace (obj2.a);
// метод клонирования
Object.prototype.clone = function () {
var c = new Object ();
for (var n in this) {
var o = this[n];
if (typeof o == "object") {
c[n] = o.clone ();
} else {
c[n] = o;
}
}
return c;
};
// пример
obj3 = {a:33, b:{c:333}};
obj4 = obj3.clone ();
trace (obj3.a);
trace (obj3.b.c);
trace (obj4.a);
trace (obj4.b.c);
obj3.a = 44;
obj3.b.c = 444;
trace ("");
trace (obj3.a);
trace (obj3.b.c);
trace (obj4.a);
trace (obj4.b.c);
|
|
|||||
|
сенкс, как я и думал %((
2iNils - спасибо, избавил меня от лишней работы %))) |
|
|||||
|
А такой вопрос - куда это лучше положить? всмысле куда этот код лучше положить, у меня есть несколько классов, в которых этот метод будет использоваться.
Я конечно понимаю что можно и на сцену - будет работать, но куда красивше его положить ? |
|
|||||
|
Цитата:
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Ты учитывай, что класс MovieClip является наследником класса Object. То есть у MovieClip тоже появляется метод clone(), но вот работать он будет не так из-за строчки if (typeof o == "object").
А класть... оставь в Object. |
|
|||||
|
.grin! wuz here
|
.....
__________________
Breakcore them all! Последний раз редактировалось KidsKilla; 25.10.2005 в 16:50. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|