动态创建类的实例,无需预加载类

是否可以创建动态类而不预加载它?我想避免预加载该类,因为我是动态导入它的。下面是一个代码示例,说明了我想要实现的目标:


  import(namespace).then((DynamicClass) => {

    var classInstance = new DynamicClass();

  }

目前的结果是:(节点:962)UnhandledPromiseRejectionWarning:TypeError:dynamicClass不是构造函数


当我 console.log DynamicClass 时,它显示:


{ default: [Function: DynamicClass] }

该类的定义如下:


命名空间/index.js


class DynamicClass extends BaseClass {

   //...

}

module.exports = DynamicClass;


慕侠2389804
浏览 73回答 1
1回答

呼唤远方

看来您的问题与对模块的误解和较少使用的动态导入语法有关。你不是在导入一个类,而是在导入一个 ES 模块。您可以使用导入的模块,根据您所需的值是否是默认导出,使用相关调用来访问模块的导出值。如果您的模块默认导出一个类,例如export default class Class(){...}您可以使用模块上可用的 default() 函数来初始化类定义。const module = await import("module-name")const obj = new module.default();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript