如何动态调用来自变量的工厂方法?
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();
我有一项服务可以 return 工厂名称。我已经将所有工厂注入控制器。我需要使用变量来调用该工厂内的方法。我知道我可以使用
if(var == 'factoryname') {
factoryname.method()
}
但我不想要那些 if 条件,因为我有很多工厂。有没有办法像在 java 脚本中那样调用该工厂内部的方法
window[var]
您应该考虑将所有工厂存储在一个对象上:
var factories = {
factoryA: { method: function() {} },
factoryB: { method: function() {} },
};
var factory = 'factoryA';
factories[factory].method();