我在现有代码库中看到了一些代码:
angular.module("myApp", [])
.service("myService", function() {
return {
getData: function() { } // etc ...
};
});
我认为这个概念是这样的:如果它是module.factory()
,你提供一个函数来返回一个对象(它是服务对象),而如果它是module.service()
,你提供一个函数,实际上只是一个构造函数,所以稍后,new
关键字将与此构造函数一起使用以获取服务对象。
然而,上面的代码实际上是有效的。这显然是因为,如果它被认为是构造函数(即使它不是),当new
关键字与它一起使用时,它返回一个对象,所以这个对象返回使用new
关键字实例化的对象。但事实是,它仍然有效。
即使我们应该使用module.factory()
,使用module.service()
实际上也可行。有副作用吗?
我认为最好将其更改回module.factory()
,但与此同时,我担心如果现在一切正常,将其更改回module.factory()
可能会引入新的错误。