我有这个模块:
define(function() {
clickHandlerA = function() { ... }
clickHandlerB = function() { ... }
return {
handle : function(param) {
doSomething(param);
var handler = 'clickHandler' + param;
}
}
}
现在,我需要以某种方式调用适当的点击处理程序。我试过了
if (typeof handler == 'function') {
handler.call();
}
我也试过
if (handler in this) {
handler();
}
但没有工作。有什么建议吗?
答案 0 :(得分:1)
我理解你需要的是:
define(function() {
var handlers = {
A: function() { ... },
B: function() { ... }
};
return {
handle : function(param) {
doSomething(param);
return handlers[param];
}
}
}
所以你可以从外面做到这一点
yourModule.handle('A')();