Цитата:
|
1)Если я диспатчу событие из класса то подписать на это событие я мог только экземпляр этого класса?
|
Путаница в формулировках. Подписать НА ПОЛУЧЕНИЕ СОБЫТИЯ вы можете кого угодно. Но рассылать событие будет экземпляр или его контейнер в случае всплытия, и к ним вы ДОБАВЛЯЕТЕ СЛУШАТЕЛЬ (addEventListener). Слушатель это метод (обработчик события, handler), который указывается вторым параметром в addEventListener. Вы добавляете его объекту как слушателя событий, которые будет рассылать этот объект.
2) Конечно нет. Ссылки на экземпляры не обязательно должны храниться в приватных полях класса напрямую, они могут храниться в массиве или векторе, или добавленные как дети дисплейлиста в контейнере. Но в любом случае на объект должна быть хотя бы одна ссылка, иначе он будет удален из памяти Сборщиком Мусора.
Что касается событий, которые эти объекты ыбудут рассылать – вы подпишитесь на них сразу после создания объекта, а в обработчике событий узнать, какой именно экземпляр послал событие, можно из свойств объекта События, который непременно получает слушатель-обработчик. У этого объекта есть поля target и currentTarget.