在AngularJS中,当应该使用module.factory()时,如果使用module.service()是否有任何副作用?

在AngularJS中,当应该使用module.factory()时,如果使用module.service()是否有任何副作用?,angularjs,Angularjs,我在现有代码库中看到了一些代码: angular.module("myApp", []) .service("myService", function() { return { getData: function() { } // etc ... }; }); 我认为这个概念是这样的:如果它是module.factory(),则提供一个函数来返回一个对象(即服务对象),而如果它是module.service(),则提供一个

我在现有代码库中看到了一些代码:

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()
可能会引入新的bug。

您应该将其改成factory。。。它被错误地定义为服务,但如果将
服务
更改为
工厂
,它将被破坏,尽管很奇怪为什么
新的
首先与它一起使用