【发布时间】:2015-12-02 06:53:55
【问题描述】:
var parent = (function() {
// private vars .....
// private methods....
var childObj = new Child()
return {
public: publicmethods,
on: on
};
}());
function Child() {
var events;
};
Child.prototype.on(ev, fn) {
}
不清楚如何以一种有效的方式从子对象中向上冒泡事件。考虑一个为更高级别的应用程序提供命名空间接口的库。应用程序可以注册所有事件。父对象如何从子对象(多个)捕获事件并将它们传播/冒泡到应用程序?
一个明显的方法是每个子对象都为父对象提供一个接口来注册事件,然后每当特定的子事件触发时,父对象必须将其冒泡。但我认为这不必要地涉及大量冗余代码,因为这需要为每个子对象完成。也就是说,每种不同类型的 Child 对象都必须复制观察者(pub-sub)模式的代码,以注册事件和触发事件。随着父级开始创建多种类型的对象(Child1、Child2、Child3 等),这将变得难以管理。
有没有更好的方法来管理这个?使用某种模式进行事件委托或冒泡。大多数现有文档都在讨论 DOM 空间中的事件委托。但是如前所述,这与 DOM 无关。
【问题讨论】:
标签: javascript events