Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不预加载类的情况下动态创建类的实例_Javascript_Node.js - Fatal编程技术网

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这就成功了。真不敢相信我错过了。。。