首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ES6/ES7同名扩展类

ES6/ES7同名扩展类
EN

Stack Overflow用户
提问于 2020-01-10 19:58:34
回答 1查看 615关注 0票数 0

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

代码语言:javascript
复制
// 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-extended中包含ThirdClass,作为MainExtended的一个额外功能。

但我还是想知道是否还有别的办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-10 20:11:52

就像VLAZ在评论中说的,我不能百分之百地确定你在问什么,但是你能这样做吗?

解决方案1

代码语言:javascript
复制
class MyClass {
  constructor(_main){
    myMain = _main;
  }
}

const regularMain = new MyClass(new Main());
const extendedMain = new MyClass(new MainExtended());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59688253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档