我有几个函数用于将事件与页面上的div绑定。有MenuHandlers,CalendarHandlers,PopupHandlers ....
所以目前,我有一个名为BindHandlers的函数,我从文档就绪函数调用它,并逐个运行所有处理函数。
是否有单行解决方案可以说“在函数名称中调用所有具有”处理程序“的函数?
这是函数的样子:
function BindHandlers() {
MenuHandlers();
CalendarHandlers();
PopupHandlers();
... 8 more like this
}
我想要取代:
BindHandlers(); // replace that line with the following:
"call all the functions that have "Handlers" in their names
感谢您的建议。
答案 0 :(得分:4)
如果这些功能都是全局的,那么可以使用名称中的Handlers
来调用所有函数
for (var x in window)
if (typeof window[x] === 'function' && /Handlers/.test(x))
window[x]();
答案 1 :(得分:0)
Backbone有这个:
events: {
'click #menu' : 'MenuHandler',
'click #calendar' : 'CalendarHandler',
// etc.
}
创建相应视图时会自动执行事件绑定。
您可以使用此模式:
bindEvents({
'click #menu' : 'MenuHandler',
'click #calendar' : 'CalendarHandler',
// etc.
});