节点使用存储在变量中的ES6类获取错误

时间:2017-01-12 19:12:09

标签: javascript node.js subclass

我有以下主ES6类,它包含对我的代码中稍后动态调用的其他ES6类的引用,如下所示:

class Root {
   constructor() {
       this.refs = {
         ref1: require('ref1')
         ref2: require('ref2') 
       }
   }
}

module.exports = exports = new Root;

ref1和ref2导出class Ref1class Ref2的新实例。

稍后,我尝试通过执行以下操作来创建其中一个引用类的实例:

const Root = require('root');

class other {

 someFunc() {

   var ref = new Root.refs['ref1'](value);
 }

}

这始终以以下错误结束: TypeError: this.actions[action.action] is not a constructor

如何正确引用这些ref类?

2 个答案:

答案 0 :(得分:0)

()之后您遗失new Root

如果导出设置为默认值,您可能还想尝试使用require('ref1').default

答案 1 :(得分:0)

您没有使用Root关键字导出要导出类Root实例的类new

将其更改为module.exports = Root;