Why should I choose using a Service over a Factory in AngularJS?
本问题已经有最佳答案,请猛点这里访问。
我知道这个问题问了很多次(实际上,很多!)但我还是无法完全理解这两者之间的主要区别。
我知道一个服务返回所提供函数的一个单例实例,工厂只调用这个函数并返回其值。
但是…
如我所见,你可以使用一个或另一个来达到相同的效果,那么我应该如何选择使用哪一个呢?为什么我应该选择服务而不是工厂,或者反过来呢?
有没有一种情况下一个人可以做另一个人不能做的事情?
简而言之
如果希望像正常函数一样调用函数,请使用工厂。如果希望用新的操作符实例化函数,请使用service。如果你不知道区别,就用工厂
来源:
网址:http://iffycan.blogspot.in/2013/05/angular-service-or-factory.html
详细说明
当您使用服务时,您声明的变量和函数将原型化为新对象,对象将返回给您。在工厂中,它将简单地返回函数。
假设您创建了一个具有10个函数的服务,当您将其作为依赖项包含时,将创建新对象,并且所有函数都将原型化,请参见下面的示例
1 2 3 4 5 6 7 | function Gandalf() { this.color = 'grey'; } Gandalf.prototype.comeBack = function() { this.color = 'white'; } |
"此"将被退回。性能问题在这里可以忽略不计。