创建实例并传递给构造函数或在构造函数内部创建

Create instances and pass to the constructors or create inside the constructor?

本文关键字:构造函数 创建 内部 实例      更新时间:2023-09-26

我不确定我应该遵循哪个。我开始使用require.js并开始看到实例不可见。所以我有 2 个选择:创建并传递给另一个构造函数或在类中创建它们。例如:

define
    dep1,
    dep2
    dep3
dep1 = new Dep1
dep2 = new Dep2
dep3 = new Dep3(dep1, dep2)

我应该这样做吗

define(dep3) 
dep3 = new Dep3();

在 dep3 文件中:

define(dep1, dep2);
dep3.initialize: function() {
   this.dep1 = new Dep1;
   this.dep2 = new Dep2;
}

代码非常抽象,但我希望你明白这个想法。那么我应该使用哪个选项以及何时使用?

如果你总是只想创建 dep3,并且 dep3 的每个实例都应该有自己的对 dep1/2 的引用,你应该使用第二种方法。

如果要在多个 Del3 实例之间共享 Dep1 或 Dep2,则应通过构造函数传递它。

这真的取决于你,就 Dep3 实例的逻辑而言,没有区别......