您认为以下两种情况中的哪一种在性能方面更好 (有很多依赖注入服务)?
app.service('randomService', function(dependency1, dependency2, ...) {
//code
});
或
app.service('randomService', function($injector) {
var service;
this.svFct = function (entityType, idList, entityList) {
switch (entityType) {
case 'product':
service = $injector.get('dependency1');
service.get({}, onSuccess, onError);
break;
case 'order':
service = $injector.get('dependency2');
service.get({}, onSuccess, onError);
break;
case 'actor':
service = $injector.get('dependency3');
service.get({}, onSuccess, onError);
break;
...
}
};
});
答案 0 :(得分:4)
角度注射器的性能影响可以忽略不计。服务是单体,它们在第一次注射时被实例化,并在随后的注射中从键/值存储中检索。
比较不正确,因为两个片段不包含相同的逻辑。 svFct
方法可以多次调用,每次调用都会$injector.get(...)
。
在第一种情况下,有一个注射器调用。在第二种情况下,有多个注射器调用。