为什么用'新'创建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