Попробую описать: Если citiesOpened==false, то ничего не делаем. Иначе - создаём функцию closeCitiesOpenedEvent , которая сеттеру citiesOpenedSetter назначает false. Слушатель window.document.addEventListener('click', closeCitiesOpenedEvent) ждет клика на докуументе, чтобы запустить closeCitiesOpenedEvent. window.document.removeEventListener('click', closeCitiesOpenedEvent) - обнуляем слушателя. А вот это что законструкция? return () => { ... }