观察者模式对于本质上是一个分组函数调用来说似乎有很多开销
请参阅文章the-observer-pattern-in-javascript-explained上的CodePen链接
Please "try" to ignore the lack of non-DRY code in the example.
这只是简化Forked CodePen Here
我意识到没有订阅/取消订阅方法,但是从toNotify数组中添加/删除是相似的。
Codepen代码:
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);
});
代码更易于阅读,编码和解释。
但是,我可能会缺少观察者模式的要点,而在其他情况下,当观察者模式取得成功并将我的示例踢到路边时,我谦虚的示例可能会中断。我在猜课,状态管理?
如果您可以让我知道我所缺少的内容和/或提供一些观察者模式真正发光之处的例子,那么这也很好