请考虑底部的 Javascript 代码摘录。它大致由两个模块组成,一个用于处理消息。消息模块中的 filtersUpdateSuccess 方法有什么好处?
目前它只是委托给 tplPanels 模块的 overwriteAll 方法。一个让我印象深刻的想法是,在 filtersUpdateSuccess 方法中,对 tplPanels.overwriteAll 的调用可以包装在 try/catch 中。这对我有好处吗,额外的间接级别还有其他好处吗?
PS ....我熟悉以下问题,并已对其进行了咨询并按照其中的链接进行操作,但是现在我想要在特定上下文中得到答案,而不是更笼统的:间接级别解决了每个问题
function msgHandlers() {
var scope
,msgs;
return {
SET_CONTEXT: function(context) {
scope = context.scope;
msgs = context.messages;
}
,SUBSCRIBE_ALL: function() {
me.subscribe(scope, msgs.FILTERS_UPDATE_SUCCESS, this.filtersUpdateSuccess);
//me.subscribe(scope, msgs.FILTERS_UPDATE_SUCCESS, tpl.overwriteAll);
}
,filtersUpdateSuccess: function(filterValues) {
tplPanels().overwriteAll(filterValues);
}
}
}
function tplPanels() {
var instances = {};
return {
locationInstance: function() {
if (!instances.locationPanel) {
instances.locationPanel = locationPanel();
}
return instances.locationPanel;
}
//more instances, etcetera
,overwriteAll: function(filterValues) {
//do something useful
}
}
//etcetera