Javascript 在不预加载类的情况下动态创建类的实例
是否可以在不预加载的情况下创建动态类? 我希望避免预加载该类,因为我正在动态导入它。下面是一个代码示例,说明了我试图实现的目标:Javascript 在不预加载类的情况下动态创建类的实例,javascript,node.js,Javascript,Node.js,是否可以在不预加载的情况下创建动态类? 我希望避免预加载该类,因为我正在动态导入它。下面是一个代码示例,说明了我试图实现的目标: import(namespace).then((DynamicClass) => { var classInstance = new DynamicClass(); } 这目前导致: (节点:962)未处理的PromisejectionWarning:TypeError:dynamicClass不是构造函数 当I console.log动态类时
import(namespace).then((DynamicClass) => {
var classInstance = new DynamicClass();
}
这目前导致:
(节点:962)未处理的PromisejectionWarning:TypeError:dynamicClass不是构造函数
当I console.log动态类时,它显示:
{ default: [Function: DynamicClass] }
该类的定义如下:
namespace/index.js
class DynamicClass extends BaseClass {
//...
}
module.exports = DynamicClass;
看起来您的问题与对模块的误解和较少使用的动态导入语法有关。您不是在导入类,而是在导入ES模块。根据所需值是否为默认导出,可以使用导入的模块通过相关调用访问模块的导出值 如果您的模块默认导出一个类,例如
export default class Class(){...}
您可以使用模块上可用的default()函数将类定义获取为init
const module = await import("module-name")
const obj = new module.default();
如果它不是构造函数,它是什么?应该是调试开始让您失望的第一个后续问题。@Taplar用更多细节更新了问题,以说明完整的用例。因此
dynamicClass.default
可能是constructor@Taplar这就成功了。真不敢相信我错过了。。。