【问题标题】:Make an instance of a class that is in an another file without creating a new variable创建另一个文件中的类的实例而不创建新变量
【发布时间】:2020-07-16 22:32:11
【问题描述】:

我有一个包含这个的文件:

// filename "Test1"
module.exports = class Test {
    constructor() {
        console.log('Instancied !');
    }
}

我有第二个包含这个的文件

// filename "Test2"
const Test = require('./Test1');

const testInstance = new Test();

有没有办法简化这一点,以便在与要求相同的行中创建类?
这不起作用,但我认为它看起来像这样:const testInstance = new (require('./Test1'));

【问题讨论】:

    标签: javascript class syntax require


    【解决方案1】:

    require('./Test1') 返回类的定义。所以你有正确的想法,你只是缺少一对()

    const testInstance = new (require('./Test1'))();
    

    【讨论】:

      【解决方案2】:

      这是我能想到的最好的:

      // Test1
      class Test {
          constructor() {
              console.log('Instancied !');
          }
      }
      
      module.exports = () => new Test();
      
      // Test2
      const testInstance = require('./Test1')();
      

      这能解决您的问题吗?

      【讨论】:

      • 不,Test 的每个实例对我来说都必须不同(因为Test 只是我的问题的简化版本,该类通常有一个带有多个参数的构造函数)。
      • 我的代码将生成单独的实例。如果你需要传递参数,你可以简单地传递它们。
      猜你喜欢
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多