![]() |
Очень «строгая» проверка объектов
Всем привет)
Появилась необходимость в сравнении 2 объектов на полную идентичность, т.е. на то, что они ссылаются на один и тот же фрагмент в памяти. Не знаю, возможно ли такое в AS3, но постараюсь объяснить, как это должно работать: Код AS3:
Но всё-таки, возможно, кто-то сталкивался с подобной задачей и сможет подсказать решение. За ранее спасибо) |
Цитата:
Другими словами, Вы хотите сравнивать переменные, то есть ссылки. Но Ваша функция не получает ссылок. Она получает просто значения — единички. И эти значения никак не могут быть неравны. Добавлено через 12 минут Не говоря уже о том, что prop в obj3 вовсе не собирается хранить ссылку на obj1 и его prop, а просто сохраняет значение: Код AS3:
Решение для первого случая — передавать ссылки на объекты и строковые имена ключей. В функции сравнивать И объекты, и значения ключей Код AS3:
Добавлено через 23 минуты Да и в первом случае все не так гладко)) Мы получим true при таком раскладе: Код AS3:
|
Цитата:
А что касается "магии", то она очень проста. Пишете контрольный перечень свойств объекта-1 и меняете их по определенному правилу, если у объекта-2 они так же изменились - значит да, это один объект. Потом свойства откручиваете в состояние до проверки. Но на мой взгляд это костыль. Типа, если телега доехала до моста, проверяем, есть ли у нее колеса, если колес нет, ставим дефолтные. |
|
Есть ещё один способ, он странный и довольно медленный. :)
Код AS3:
|
| Часовой пояс GMT +4, время: 00:04. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.