![]() |
Клонирование объектов
Пытаюсь разобраться как клонировать различные объекты и чувствую, что в голове какая-то каша - понимаю, что вообще не понимаю механизм происходящего.
Вот, вроде, можно написать такую функцию, для клонирования примитивных объектов (DisplayObject пока не рассматриваем) и массивов: Код AS3:
Код AS3:
Код AS3:
Код AS3:
Т.е. получается восстановление из ByteArray по сути запускает сначала конструктор? Что вообще там происходит? Проблема с неверным количеством параметров решается через присвоения дефолтного значения параметру конструктора: Код AS3:
Но если дальше еще чуть усложнить класс, то начинается петрушка, которой я не могу найти объяснения и не понимаю, что делать. Код AS3:
Код AS3:
Для начала с этими моментами бы разобраться, а потом, если будут вопросы, я их буду задавать по ходу дальнейших попыток понять, что происходит. |
я недостаточно компетентен, чтобы рассказывать почему не получается и почему вызывается конструктор, но гарантированно вам скажу, что у вас ничего не получится с клонироваением таким образом.
Прийдется вам по старинке: создавать функцию объекта clone(), где создается новый instance того же объекта, копируются все поля, как надо, и instance возвращается. |
Цитата:
|
что серьёзно? именно так и называется? ну те на, а я и не знал =)
|
http://flasher.ru/forum/showpost.php...8&postcount=14 вот тут есть способ
|
Я видел этот сообщение. Оно же самое есть, вроде, в блоге _etc. То, на что вы дали ссылку, мало чем отличается от того, что написал я. Только я привел примеры, где это копирование перестает работать. Обратите Внимание, что в примере, приведенном вами, клонируются объекты, которые по сути являются ассоциативными массивами и их дочерние элементы такие же простые структуры. Как я показал ранее, этот способ не работает над более сложными объектами, если я, конечно, где-то жестоко не на
Кстати, там в конце есть даже приписка, что данный метод хорошо подходит для чистых DTO/VO объектов - т.е., если я правильно понял, объектов, использующих описательную структуру вроде простых Object (ассоциативных массивов иже с ними {i: 1, j: 5}) и массивов. |
| Часовой пояс GMT +4, время: 22:39. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.