关于javascript:我为什么要在AngularJS中选择在工厂使用服务?

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';
}

"此"将被退回。性能问题在这里可以忽略不计。