Можешь объяснить паттерн Observer в JavaScript, включая то, как он устанавливает отношение один-ко-многим между subject и его observers, и описать ключевые методы, необходимые для его реализации? — ДейлиПреп