Javascript ES6/ES7使用相同名称扩展类

Javascript ES6/ES7使用相同名称扩展类,javascript,class,ecmascript-6,extends,Javascript,Class,Ecmascript 6,Extends,由于模块的条件导入尚未实现,如何扩展或重写同一类: //我有一个主类 //main.js 导出默认类Main{} //主类由myClass使用 类myClass{ 构造函数(){ 新的Main() } } //我有一个扩展的主课 //main-extended.js 导出默认类Main扩展Main{} //MainExtended现在由myClass使用 导出类myClass{ 构造函数(){ 新的main扩展() } } //3rd-class.js //现在我需要用我能找到的任何一门课, /

由于模块的条件导入尚未实现,如何扩展或重写同一类:

//我有一个主类
//main.js
导出默认类Main{}
//主类由myClass使用
类myClass{
构造函数(){
新的Main()
}
}
//我有一个扩展的主课
//main-extended.js
导出默认类Main扩展Main{}
//MainExtended现在由myClass使用
导出类myClass{
构造函数(){
新的main扩展()
}
}
//3rd-class.js
//现在我需要用我能找到的任何一门课,
//如果两者都已定义,则最好使用两者的扩展版本
导出默认类ThirdClass{
构造函数(…参数){
返回新的myClass(…参数)
}
}
//目的地
//index.js
从Main.js导入Main,{myClass}
从third-class.js导入ThirdClass
//index-extended.js
从main-extended.js导入MainExtended,{myClass}
从third-class.js导入ThirdClass
问题是,出于某种原因,
index.js
编译也包含了调用
maintextended
myClass
,因此我决定只在
index extended
中包含
ThirdClass
,作为
maintextended
的额外功能


但我还是想知道是否还有其他办法。

就像弗拉兹在评论中说的那样,我不能100%确定你在问什么,但你能这样做吗

解决方案1

class-MyClass{
构造函数(_main){
myMain=_main;
}
}
const regularMain=new MyClass(new Main());
const extendedMain=new MyClass(new main extended());

就像VLAZ在评论中说的,我不能100%确定你在问什么,但你能这样做吗

解决方案1

class-MyClass{
构造函数(_main){
myMain=_main;
}
}
const regularMain=new MyClass(new Main());
const extendedMain=new MyClass(new main extended());


为什么需要用同名子类重写类?似乎是因为这两个函数有两个单独的目的地,它们需要有相同的名称。让我用一些信息来更新这个问题,我似乎必须解释一些东西。对不起,你更新的代码没有进一步说明你真正想要什么。如果有什么区别的话,我比以前更困惑了。
,因为这两个函数有两个不同的目的地,它们需要有相同的名称。
。是否要创建一个接受多种类型子类的接口?请发布您的实际问题,以提供您为什么需要有两个同名类的上下文;几乎可以肯定,有更好的解决方案。@ggorlen更新了问题,请看一看。我想你在搞什么。为什么你需要用同名的子类重写一个类?似乎是因为这两个函数有两个单独的目的地,它们需要有相同的名称。让我用一些信息来更新这个问题,我似乎必须解释一些东西。对不起,你更新的代码没有进一步说明你真正想要什么。如果有什么区别的话,我比以前更困惑了。
,因为这两个函数有两个不同的目的地,它们需要有相同的名称。
。是否要创建一个接受多种类型子类的接口?请发布您的实际问题,以提供您为什么需要有两个同名类的上下文;几乎可以肯定,有更好的解决方案。@ggorlen更新了问题,请看一看。我认为你在搞什么。在正常情况下,标志参数是一种代码味道,但这是一个构造函数,所以它似乎比仅仅将标志参数传递给方法更糟糕。如果您添加
类main或扩展main,这将如何扩展?是的,这很公平。。。我主要是想弄清楚到底是什么问题。我也是,我真的不明白。也许OP正在寻找依赖注入,比如导入
SomeClass
类型,但在运行时交付的是它的一个子类。但这真的很难说。随着问题的最终更新,答案的更新似乎是OP所寻找的。标志参数在正常情况下是一种代码味道,但这是一个构造函数,因此它似乎比只将标志参数传递给方法更糟糕。如果您添加
类main或扩展main,这将如何扩展?是的,这很公平。。。我主要是想弄清楚到底是什么问题。我也是,我真的不明白。也许OP正在寻找依赖注入,比如导入
SomeClass
类型,但在运行时交付的是它的一个子类。但这真的很难说。随着问题的最终更新,答案的更新似乎就是OP想要的。