首页 > 解决方案 > 使用 new 关键字在构造函数中创建类的实例是不好的做法吗?

问题描述

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

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

示例代码:

const b = new B();

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

标签: javascriptoopecmascript-6

解决方案


无论哪个类控制其他对象的生命周期,都会创建这些对象。

在您的示例中,如果A控制特定实例B的生命周期,则可以B在构造函数中创建。

但是,如果另一个类从 控制(或拥有)对象的生命周期,则应在构造函数中传递B的实例。BA

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


推荐阅读