访问在构造函数上定义的事件 - 这种方法很好吗?

时间:2015-06-14 09:39:14

标签: javascript

我有一个管理标签的课程:

function TabsManager() {}

执行某些操作(如添加或删除标签)时,会广播事件,例如active-tab-change。我想尽可能明确地说明这个类支持哪些事件,所以我这样定义它们:

TabsManager.EVENTS = {
    ACTIVE_TAB_CHANGE: "active-tab-change"
}

订阅标签管理器事件时,我可以像这样指定事件名称:

tabsManager.on("active-tab-change", function(){});

但是,这种方法容易出错,因为我可以拼错事件名称。所以我使用类似枚举的对象EVENTS

 tabsManager.on(TabsManager.EVENTS.ACTIVE_TAB_CHANGE, function(){});

这里的问题是如果我使用dependency injection我没有对象构造函数的直接引用,所以我使用了这种方法:

 tabsManager.on(tabsManager.constructor.EVENTS.ACTIVE_TAB_CHANGE, function(){});

我以前从未见过这种方法,所以我很好奇这是否是一种可行的方法,是否已经在js框架/库中使用过?

0 个答案:

没有答案