为什么用'新'创建Angular.js服务?

根据这个问题:

angular.service vs angular.factory

服务是通过使用new关键字创建的,这意味着返回对象的new实例。

例如:

app.service('helloWorldService', function() {
    this.hello = function() {
        return "Hello World"; };
    }
);

但是,与工厂,他们不是。

这意味着如果开发者愿意,开发者可以创建新的实例(通过使用关键字new ) - 因此,为什么它被称为我假设的工厂。

我的问题是:

为什么角度创建一个服务的新实例开始?

我同意服务应该是单身,它们是什么,但是创建返回函数的新实例有什么意义? 对于服务,如果Angular只是返回了声明的功能,那就更好了 - 就像他们在工厂一样。

这对服务没有多大意义吗?

我问的原因是因为我在抽象层创建服务,但我不确定是否应该真正使用服务API作为工厂API,仅仅是因为创建声明函数的新实例似乎有点毫无意义, overkill =


如果你研究这个非常有用的链接

关于SO的信息链接

还有另一个关于SO的链接

以防万一前两个SO链接错过了,这里又是另一个

您会发现工厂,服务和提供者之间的唯一区别是运行支持该功能的Anguljarjs开销代码。

在你提到的服务或工厂的情况下,服务将使用this.property,并且可能包含它自己的原型链函数添加,以及普通的JS构造函数。

你也可以在工厂包装器中完成所有这些工作,但是你不会使用'new'操作符在你的控制器/指令中实例化工厂。

链接地址: http://www.djcxy.com/p/77995.html

上一篇: Why are Angular.js Services created with 'new'?

下一篇: Service showing undefined in angular