根据这个问题:
angular.service vs angular.factory
使用new关键字通过angular创建服务,这意味着返回对象的new
实例。
例如:
app.service('helloWorldService', function() {
this.hello = function() {
return "Hello World"; };
}
);
然而,对于工厂,他们不是。
这意味着开发人员可以选择创建新实例(通过使用关键字new
) - 因此,为什么我称之为工厂。
我的问题是:
为什么angular会创建一个新的服务实例?
我同意服务应该是单例,它们是什么,但最重要的是创建返回函数的新实例?对于服务来说,如果Angular刚刚返回声明的函数,就不会更好 - 就像它们对工厂一样。
这对服务更有意义吗?
我问的原因是因为我在抽象层创建服务,但我不确定是否应该在工厂API上使用服务API,因为创建声明函数的新实例似乎是有点无意义和过度杀伤= \
答案 0 :(得分:0)
如果你研究这个信息丰富的链接
Just in case the first two SO links were missed, here is yet another
你会发现工厂,服务和提供商之间的唯一区别是运行支持该功能的Anguljarjs开销代码。
如上所述,在服务或工厂的情况下,该服务将使用this.property,并且可能包含其自己的原型函数链添加和常规JS构造函数操作。
您也可以在工厂包装器中执行所有这些操作,但是您不会使用' new'来实现控制器/指令中的工厂。操作