在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。。。它被错误地定义为服务,但如果将服务
更改为工厂
,它将被破坏,尽管很奇怪为什么新的
首先与它一起使用