Javascript Angularjs 1工厂应该返回实例化对象还是构造函数?
我正在Angular 1中创建一个工厂,我想用它在消费代码中创建一个新的实例。 所以问题是工厂应该返回一个返回对象新实例的函数,还是我应该返回构造函数。。。为什么 选项1,创建功能:Javascript Angularjs 1工厂应该返回实例化对象还是构造函数?,javascript,angularjs,Javascript,Angularjs,我正在Angular 1中创建一个工厂,我想用它在消费代码中创建一个新的实例。 所以问题是工厂应该返回一个返回对象新实例的函数,还是我应该返回构造函数。。。为什么 选项1,创建功能: module.factory('MyObject', function(){ function MyObject(args){ stuff... } return { create: function (ar
module.factory('MyObject', function(){
function MyObject(args){
stuff...
}
return {
create: function (args) {
return new MyObject(args);
}
}
})
然后可以实例化
var thing = MyObject.create(args);
var thing = new MyObject(args);
选项2,返回构造函数函数:
module.factory('MyObject', function(){
function MyObject(args){
stuff...
}
return MyObject;
})
然后可以实例化
var thing = MyObject.create(args);
var thing = new MyObject(args);
Amgular正在对你的MyObject进行“新”操作。保证是单身。您应该返回一个构造函数。@Stevo您想在请求服务时重新实例化类吗?@brewsky我正在寻找更详细的答案。我知道提供者是单例的,但我需要理解的两个场景之间有细微的差别。@PankajParkar我想做我不在Angular工作时会做的事情。我希望能够根据我创建的原型创建对象“MyObject”。但是我想在我的其他服务和控制器等中创建它们。因此我会在我的应用程序的其他位置注入MyObject,但是注入的服务应该是带有返回新对象的create函数的object literal,还是简单地返回构造函数并让使用代码实例化对象(使用新的MyObject)。有什么区别?有吗?@Stevo我知道你想要什么了。我认为这两种选择看起来和我很相似。。找出第一个看起来更聪明的实例,当你要求时返回原型对象。Amgular正在你的MyObject上做“新”的。保证是单身。您应该返回一个构造函数。@Stevo您想在请求服务时重新实例化类吗?@brewsky我正在寻找更详细的答案。我知道提供者是单例的,但我需要理解的两个场景之间有细微的差别。@PankajParkar我想做我不在Angular工作时会做的事情。我希望能够根据我创建的原型创建对象“MyObject”。但是我想在我的其他服务和控制器等中创建它们。因此我会在我的应用程序的其他位置注入MyObject,但是注入的服务应该是带有返回新对象的create函数的object literal,还是简单地返回构造函数并让使用代码实例化对象(使用新的MyObject)。有什么区别?有吗?@Stevo我知道你想要什么了。我认为这两种选择看起来和我很相似。。首先,哪一个看起来更聪明,哪一个是实例化的&当您请求时返回原型对象。。