繁体   English   中英

Angular JS工厂如何工作?

[英]How does Angular JS factory work?

这两家工厂有什么区别吗?

.factory("f1", function(){
  var F1 = function() { ... }
  ...

  return F1;
})

.factory("f2", function(){
  var F2 = function() { ... }
  ...

  return new F2();
})

我知道f1返回构造函数, f2返回对象的实例,但是工厂的想法是返回对象的实例。 在许多有关角度的教程中,我已经看到过像f1这样的构造,并且我开始研究该工厂的工作方式,也许它们会自动创建对象的实例,而new运算符是没有用的?

[ 编辑 ]

您对这个解决方案有何看法

.factory("f3", function(options){
  var F3 = function() { ... }
  ...

  var init = function (options){
    return new F3(options);
  }

  return {createInstance: init);
})

是。 第一个返回类定义,第二个返回类定义实例。

如果需要多次创建对象的实例,则可以从工厂返回原型。 如果要初始化一次,请从工厂返回新值。

工厂和服务都是单例。 因此,如果您想多次使用对象,则返回类定义。 因此,您可以在控制器中多次执行新的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM