访问RequireJS模块的私有功能

时间:2013-09-02 11:40:17

标签: javascript requirejs

我有这个模块:

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();
}

但没有工作。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我理解你需要的是:

define(function() {
   var handlers = {
      A: function() { ... },
      B: function() { ... }
   };

   return {
     handle : function(param) {
        doSomething(param);
        return handlers[param];
     }
   }
}

所以你可以从外面做到这一点

 yourModule.handle('A')();