![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2008
Сообщений: 88
|
Есть класс
package { public class NewsItem { private var _title:String; private var _description:String; private var _link:String; public function NewsItem(title:String, descrition:String, link:String) { _title = title; _description = descrition; _link = link; } public function clone():NewsItem { var newsItemClone:NewsItem = new NewsItem(_title, _description, _link); return newsItemClone; } public function get title():String { return _title; } public function get description():String { return _description; } public function get link():String { return _link; } } } package { import flash.display.Sprite; import wer32.NewsItem; public class Main extends Sprite { public function Main() { var news1:NewsItem = new NewsItem("1", "2", "3"); var news2:NewsItem = news1.clone(); trace(news1 == news2); } } } Стало быть объекты не одинаковы. Почему так происходит ![]() |
|
|||||
|
сравнение проходит не по полям объекта а по ссылкам. вы создали ДРУГОЙ объект, пусть с теми же значениями полей, но ДРУГОЙ. если вы измените объект news1, news2 не изменится, так как ссылка у него другая.
Напишите в вашем классе функция сравнения, что типа И сравнивайте с помощью нее |
|
|||||
|
4AM Games
|
Потому что они разные инстансы=)
Допишите метод в NewsItem
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Dec 2008
Сообщений: 88
|
ОООО спасибо вам преогромнейшее
Примерно такие мысли были но уложить по полочкам как то не мог ![]() еще раз спасибо ![]() |
|
|||||
|
стервочка (я мужик)
|
Gal4enochek, compare по логике должен возвращать качественный результат сравнения. тобишь на сколько они разные. обычно это ( -1, 0, 1 ).
|
|
|||||
|
Ну сорри,
Какое первое пришло в голову название метода, так и назвала ![]() Критику учтем ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|