为什么 AngularJS 服务只能 return 对象,而工厂可以 return 原语和对象?
Why AngularJS service can return only objects, when factory can return both primitives and objects?
工厂可以return 原语和对象。那么对 return 对象使用服务(类型友好注入)的原因是什么?
// factory
app.factory('factoryService',function(){
var returnObj = function() {
};
return new returnObj();
})
// service
app.service('service',function(){
return this;
});
原因是商品。如果你有一个构造函数,你可以将它传递给 service()
而不是必须创建一个调用构造函数的工厂和 returns 创建的对象。
顺便说一句,factory()
是另一种商品,它避免创建具有返回服务的 $get()
函数的提供者。它只是让代码更短。
工厂可以return 原语和对象。那么对 return 对象使用服务(类型友好注入)的原因是什么?
// factory
app.factory('factoryService',function(){
var returnObj = function() {
};
return new returnObj();
})
// service
app.service('service',function(){
return this;
});
原因是商品。如果你有一个构造函数,你可以将它传递给 service()
而不是必须创建一个调用构造函数的工厂和 returns 创建的对象。
顺便说一句,factory()
是另一种商品,它避免创建具有返回服务的 $get()
函数的提供者。它只是让代码更短。