是否可以从 JavaScript 中的子 class 导入父模块?

Is it possible to import parent module from sub class in JavaScript?

我有两个文件有自己的模块,Sub.jsParent.js

Parent.js:

import Sub from "/.Sub.js"
export default class Parent {
    static createSomething(){
        new Sub();
    }
}

Sub.js:

import Parent from "/.Parent.js"
export default class Sub extends Parent {
    contructor(){}
}

我得到错误:

ReferenceError: 初始化前无法访问词法声明`X'

子模块不能使用,因为需要父模块,但是导入父模块需要导入子模块,我想?

这可以通过将它们放在同一个文件中来解决,但我想知道是否有办法将它们作为单独的文件保存。

实现此类循环依赖时,请确保您在其他代码中使用的文件不包含需要其他文件的 top-level export 声明。在你的情况下:

  • 如果你在其他文件中导入Sub,它的top-level export需要Parent而需要Sub,那么就无法解决:蛇咬自己的尾巴
  • 如果您在其他文件中导入 Parent,它的 top-level export 不需要立即 Sub(仅当 createSomething 被调用时).在这种情况下,Parent export 完全解析,然后 Sub 文件也能够解析它自己的 export