gpt4 book ai didi

javascript - ES6/ES7 扩展同名类

转载 作者:行者123 更新时间:2023-12-01 00:17:12 25 4
gpt4 key购买 nike

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

// I have a main class
// main.js
export default class Main {}

// Main class is used by myClass
class myClass {
constructor(){
new Main()
}
}

// I have an extended main class
// main-extended.js
export default class MainExtended extends Main {}

// the MainExtended is now used by myClass
export class myClass {
constructor(){
new MainExtended()
}
}


// third-class.js
// now I need to do this with any class I can find,
// preferably with the extended version of both, if both defined
export default class ThirdClass {
constructor(...args){
return new myClass(...args)
}
}


// destinations

// index.js
import Main, {myClass} from main.js
import ThirdClass from third-class.js


// index-extended.js
import MainExtended, {myClass} from main-extended.js
import ThirdClass from third-class.js



问题是,由于某种原因,index.js编译还包括myClass调用MainExtended,所以我决定只包括index-extend 中的 ThirdClass,作为 MainExtended 的额外功能。

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

最佳答案

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

解决方案1

class MyClass {
constructor(_main){
myMain = _main;
}
}

const regularMain = new MyClass(new Main());
const extendedMain = new MyClass(new MainExtended());

关于javascript - ES6/ES7 扩展同名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com