window.myClass 不是构造函数

window.myClass is not a constructor

我有一个 ES6 class 文件,如下所示:

import { BaseClass } from './xm/classes/class-file.js';

export class myClass extends BaseClass {
   constructor() {
      super();
   }

   createFormSession(formId, payload) {
     return new NewForm(formId, payload);
   }
}

class NewForm {
  constructor(formId, payload) {
    this.formId = formId;
    this.payload = payload;
  }
}

我收到此错误,提示 myClass 不是构造函数。

所以它似乎期待 BaseClass 但它找不到它,我不清楚为什么,当它在我的本地开发服务器上工作时。

导致错误的实际代码行是第一个 constructor() 函数被引用的地方,错误出现在 Chrome 浏览器的控制台中。

调用方式:

var defaultUIHandler = new window.myClass()

我也试过:

var defaultUIHandler = new window.myClass()

ES6 class 名称不会像浏览器中的其他顶级变量一样自动添加到全局对象。这是 ES6 规范的一部分。因此,除非您专门将它们指定为 window 对象的属性,否则您无法通过 window 对象访问它们。

所以,这段代码:

var defaultUIHandler = new window.myClass()

将无法正确找到 myClass,因为默认情况下它不是 window 对象的 属性。如果您已在此范围内定义 myClass 或将其导入此范围,那么您应该可以这样做:

var defaultUIHandler = new myClass();