这两家工厂有什么区别吗?
.factory("f1", function(){
var F1 = function() { ... }
...
return F1;
})
和
.factory("f2", function(){
var F2 = function() { ... }
...
return new F2();
})
我知道f1
返回一个构造函数,f2
返回一个object实例,但工厂的想法是返回一个对象的实例。在许多有关角度的教程中,我看到了像f1
这样的构造,我开始讲述这个工厂是如何工作的,也许他们会自动创建一个对象的实例而new
运算符是无用的? / p>
[编辑]
您对此解决方案的看法
.factory("f3", function(options){
var F3 = function() { ... }
...
var init = function (options){
return new F3(options);
}
return {createInstance: init);
})
答案 0 :(得分:0)
是肯定的。第一个返回类定义,第二个返回类定义的实例。
如果需要多次创建对象的实例,则可以从工厂返回原型。如果你想初始化它,那么从工厂返回新的。
工厂和服务是单身人士。因此,如果您想多次使用对象,则返回类定义。因此,您可以在控制器中执行多次新操作。