如何动态调用来自变量的工厂方法?

How to call a factory method dynamically coming from variable?

我有一项服务可以 return 工厂名称。我已经将所有工厂注入控制器。我需要使用变量来调用该工厂内的方法。我知道我可以使用

if(var == 'factoryname') {
     factoryname.method()
}

但我不想要那些 if 条件,因为我有很多工厂。有没有办法像在 java 脚本中那样调用该工厂内部的方法
window[var]

您应该考虑将所有工厂存储在一个对象上:

var factories = {
  factoryA: { method: function() {} },
  factoryB: { method: function() {} },
};

var factory = 'factoryA';

factories[factory].method();