javascript - Node/JS 在导入时创建新实例

标签 javascript node.js typescript

我想创建一个类的实例,而不是先导入该类,然后再创建 new

代替

var mainClass = require('../dist/main'); // has "class Main { ... }"
var mainInstance = new mainClass();

我想要

var mainInstance = new require('../dist/main').Main();

但是语法有问题。

var main = new require('../dist/main').Main();
                                       ^
TypeError: Class constructor Main cannot be invoked without 'new'

这甚至可能吗?我使用 TypeScript 和普通 JS 的组合。

最佳答案

您可以使用括号来实现:

var main = new (require('../dist/main').Main)();

如果你的 module.exports 只是导出一个类,你会这样做:

var main = new (require('../dist/main'))();

关于javascript - Node/JS 在导入时创建新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41898412/

相关文章:

javascript - 在没有 defineProperty 的情况下覆盖对象 getter

javascript - angular.foreach 和原生 for 循环之间的性能差异

javascript - 调用音频元素在 html5 中播放的更快方法

javascript - UIWebView 中首字母大写 (iOS)

angular - 错误类型错误 : Cannot read property 'get' of undefined

typescript - 使用模板文字类型的字符串联合的子字符串

javascript - 类型 'File' 的参数不可分配给类型 'string' 的参数

node.js - 带有nodejs异步请求的redis中的for循环

node.js - 找不到具有以下功能的代理 : grunt

javascript - 使用带有 Node 的 PrestaShop Web 服务上传产品图片