用new关键字在构造函数中创建类的实例是不好的做法吗?

时间:2018-09-01 11:23:23

标签: javascript oop ecmascript-6

我有Java类,并且从其他类中需要一个对象。我的问题是哪个更好?

在类定义之外创建类的实例还是在构造函数中创建?

示例代码:

const b = new B();

class A {
  // and then use b
}
// or 
class A {
 constructor() {
 const b = new B();
 }
}

2 个答案:

答案 0 :(得分:0)

如果它们都是两个类,您可以扩展所需的类吗?

class b {}

class a extends b {}

答案 1 :(得分:0)

哪个类控制其他创建对象的对象的 lifetime

在您的示例中,如果A控制着B 的特定实例的生存期,那么可以在构造函数中创建B

但是,如果另一个类控制B中对象的生存期(或拥有),则B的实例应传递给构造函数中的A

测试很简单:负责其他对象生命周期的类负责创建这些对象。