我为什么要在AngularJS中选择使用Service over Service?

时间:2014-10-30 13:07:32

标签: javascript angularjs angularjs-scope angularjs-service

我知道这已被问了很多次(实际上,很多!),但我仍然无法完全理解这两者之间的主要区别是什么。

我知道服务返回所提供函数的单例实例,而 factory 只会调用此函数并返回其值。

但是...

在我看来,你可以使用一个或另一个来实现相同的效果,那么我应该如何选择使用哪一个?我为什么要在工厂上选择服务,或者反过来呢?

是否存在可以做对方无法做到的事情?

1 个答案:

答案 0 :(得分:3)

简短

如果希望像普通函数一样调用函数,请使用factory。如果希望使用new运算符实例化函数,请使用service。如果您不知道差异,请使用工厂

来源:

网址:http://iffycan.blogspot.in/2013/05/angular-service-or-factory.html

详细说明

当您使用服务时,您声明的变量和函数将被原型化为新对象,并且对象将返回给您。在工厂里,它会简单地返回功能。

假设您创建了一个包含10个函数的服务,当您将其作为依赖项包含时,将创建新对象并且所有函数都将进行原型化,请查看下面的示例

function Gandalf() {
    this.color = 'grey';
}

Gandalf.prototype.comeBack = function() {
    this.color = 'white';
}

“此”将被退回。这里的性能问题可以忽略不计。