Rozpošle zmenu stavu všetkým, ktorí sa na jeho odber prihlásili.
class Order { #observers = new Set(); #state = 'new'; subscribe(observer) { this.#observers.add(observer); } unsubscribe(observer) { this.#observers.delete(observer); } pay() { this.#state = 'paid'; this.#notify(); } #notify() { for (const observer of this.#observers) { observer.update(this); } }} const order = new Order();order.subscribe(new EmailAlert());order.subscribe(new AuditLog());order.subscribe(dashboard); order.pay();order.unsubscribe(dashboard);order.pay();