0

私はこのモジュールを持っています:

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

しかし、どれも機能しません。助言がありますか?

4

1 に答える 1

1

あなたが必要だと私が理解しているのはこれです:

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

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

したがって、これを外部から行うことができます

 yourModule.handle('A')();
于 2013-09-02T11:56:57.570 に答える