Inheritance 在运行时在超类中使用子类,而无需循环导入ES6

Inheritance 在运行时在超类中使用子类,而无需循环导入ES6,inheritance,ecmascript-6,reference,runtime,Inheritance,Ecmascript 6,Reference,Runtime,我正在使用ES6,如果有必要的话,可以浏览一下 我有一个名为Entity 我有一个名为Explosion的子类。换句话说,爆炸扩展了实体 我在实体上有一个名为分解的方法,我想在其中实例化一个分解 我不希望在Entity.js中导入Explosion,因为这将创建循环依赖项 实际上,我不需要在编译时立即提供爆炸。我将不需要它,直到很久以后在运行时 在运行时,实体上的方法中的爆炸无需导入,如何正确且干净地使其可供引用 我尝试过的 我读了一些有意义的东西。我在ES5中也做了同样的事情,但方式更加迂回

我正在使用ES6,如果有必要的话,可以浏览一下

我有一个名为
Entity

我有一个名为
Explosion
的子类。换句话说,
爆炸
扩展了
实体

我在
实体
上有一个名为
分解
的方法,我想在其中实例化一个
分解

我不希望在
Entity.js
中导入Explosion,因为这将创建循环依赖项

实际上,我不需要在编译时立即提供
爆炸
。我将不需要它,直到很久以后在运行时

在运行时,
实体
上的方法中的
爆炸
无需导入,如何正确且干净地使其可供引用

我尝试过的

我读了一些有意义的东西。我在ES5中也做了同样的事情,但方式更加迂回

我确实尝试了
export default()=>class Explosion
,它确实有效,并且确实使
Explosion
作为一个类可用

但是,检查实体的爆炸实例是否将返回false

这是不可取的,因为我有适当的断言来避免任何错误,这将导致检查失败