Шаблон Observer кажется слишком затратным для того, что по сути является вызовом сгруппированной функции
См. Ссылку CodePen на статью объяснение шаблона-наблюдателя в javascript
Please "try" to ignore the lack of non-DRY code in the example.
Хотя это делает то же самое проще Forked CodePen Здесь
Я понимаю, что нет методов подписки / отмены подписки, но добавление / удаление из массива toNotify аналогично.
Кодовый код:
const input = document.querySelector('.js-input');
const p1 = document.querySelector('.js-p1');
const p2 = document.querySelector('.js-p2');
const p3 = document.querySelector('.js-p3');
const toNotify = [p1, p2, p3]
function notify(text) {
toNotify.forEach(update => update.textContent = text)
}
input.addEventListener('keyup', e => {
notify(e.target.value);
});
Код легче читать, кодировать и анализировать.
Однако я, возможно, упускаю точку образца наблюдателя, и мой скромный пример сломался бы в других случаях, когда образец наблюдателя восторжествовал бы и бросил мой пример на обочину.Я угадываю занятия, государственное управление?
Если вы можете дать мне знать, что я упускаю, и / или привести несколько примеров того, как образец наблюдателя действительно сияет, это тоже было бы замечательно