【发布时间】:2017-11-22 00:37:17
【问题描述】:
自制的pubsub系统和addEventListener()加上使用new CustomEvent的系统有更大的区别吗?
pubsub(taken from here)的伪代码实现:
// Publishing to a topic:
events.publish('/page/load', {
url: '/some/url/path' // any argument
});
// ...and subscribing to said topic in order to be notified of events:
var subscription = events.subscribe('/page/load', function(obj) {
// Do something now that the event has occurred
});
// ...sometime later where I no longer want subscription...
subscription.remove();
原生 API:
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
问题
- 两者会做同样的工作吗? (我想是的?)
- 那么实际上有什么明显的区别吗?喜欢表演吗?
- 如果两种方式都可以使用,两者的优缺点是什么?
我个人认为,如果您自己实现它,API 看起来比使用提供的 API 更优雅。但这不是技术论点。 :)
资源
【问题讨论】:
-
看看 observable/data binding/pubsub 库正在使用什么。
标签: javascript events design-patterns publish-subscribe