Я пытаюсь написать объектные отношения, которые следуют шаблону наблюдателя, где наблюдатель заботится об определенном наборе событий, которые происходят на предмете.
Я не уверен, является ли это 100% -ным стандартом, но, как я его построил, эти объекты событий определены внутри наблюдателя с пользовательскими обратными вызовами, которые будут срабатывать при возникновении события.Когда на объекте происходит событие, оно проходит через всех своих наблюдателей и смотрит, кто смотрит за этим событием.Если он обнаруживает наблюдателей, наблюдающих за этим событием, он запускает обратный вызов события наблюдателя.
Поскольку я хочу, чтобы мои наблюдатели имели возможность гибко добавлять и удалять на лету события, которые нужно наблюдать, мне нужно дляу объекта события есть возможность удалить себя после выполнения своего обратного вызова ... скажем, например, если мой наблюдатель хочет ответить на событие только один раз, он больше не отслеживает его.
Это похоже на хороший план, но я знаю, что объект JavaScript не может иметь вызов delete () сам по себе.
Мне было просто любопытно, кто-нибудь еще сталкивался с этими придумал эффективное решение.
Моя единственная мысль состояла в том, чтобы я мог передать ссылку на родительский объект-наблюдатель, на его дочернее событие, затем, когда произойдет обратный вызов, я мог бы вызвать метод внутри родительского объекта ... что-то вроде removeEvent(this)
само событие для этой функции.Затем функция removeEvent может склеить событие из своего массива событий.Единственная сложная проблема - найти местоположение этого объекта события в массиве.(принимая предложения и по этому поводу, спасибо!).
Заранее спасибо за помощь!