![]() |
Создание объекта без ключевого слова var
Увидел такой код в статье про MVC:
Код AS3:
Код AS3:
Получается, можно создавать экземпляры объектов напрямую через new без ключевого слова var ? Какие подводные камни при этом существуют, и каким из двух способов и когда стоит пользоваться? |
В первом случае у вас не будет ссылки на объект. Соответственно вы ничего не сможете с ним сделать (если он сам себя не добавить куда-нибудь), и при первой возможности GC его удалит.
|
Но хуже то, что первый будет доступен для сборщика с момента создания.
|
Про GC: очень типичная ошибка.
Hint: что будет, если объект в конструкторе подпишется на события? Или просто использует переданный ему в конструкторе параметр и заассайнит этому объекту ссылку на себя? |
Будет то, что написано в скобках. Появится ссылка на объект, со всеми вытекающими.
|
Не забывайте про
Код AS3:
Конструктор - это, если грубо говоря, функция, которая возвращает экземпляр класса. Хотя конструктор - это не функция и не метод, это конструктор, если занудничать. |
Цитата:
Когда стоит пользоваться? Когда результат new передается параметром в другой метод. Код AS3:
|
Всем спасибо
|
Crazy
Наличие подписки на событие не является критерием для исключения из списка сборщика (для этого пишут деструкторы, хотя в AS3 их нет в явном виде). Я думаю, что это также распространенная ошибка, не отписывать удаляемый объект и забывать отключать в нем таймеры и останавливать каретку (и тоже для детей). (тоесть, даже после присвоения null все процессы в экземпляре буду протекать как и раньше) |
Цитата:
|
| Часовой пояс GMT +4, время: 03:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.