gpt4 book ai didi

javascript - 当我只知道父类的名字时与类一起工作

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

我有两个类:MyAbstractClassMyExtendClass 编写在不同的文件中,MyAbstractClass 中有一些函数。我想要实现的是所有文件的目录,其中包含扩展 MyAbstractClass 的类,然后在运行时需要它们并以相同的方式使用它们。
在这种情况下,当编写一个新类时,只需将其放置在该目录中即可。

我有文件名,但在不知道其名称的情况下如何使用该类?我所知道的是文件中的类扩展了 MyAbstractClass
我可以执行 const inst = require(filename) ,但它不会给我带来多大好处,因为这些函数是名为 MyExtendClass 的字段内的属性。我想过只处理 inst 对象中的第一个字段,但在我看来,它真的很丑陋且不安全(我可以确定它永远是第一个吗?)。

编辑:
我读了一些相关内容,我认为默认导出可能对我有帮助,但我也发现这被认为是不好的做法。

最佳答案

您不能自动拥有它,您可以做的只是在该目录中创建一个 index.js 文件来导出文件内容

让我们想象一个这样的目录:

Root/
├── classes/
│ ├── index.js
│ ├── classA.js
│ ├── classB.js
└── root.js

ClassA.js

export class ClassA { 
//...
}

ClassB.js

export class ClassB extends OtherClass { 
//...
}

现在,无论您要添加什么文件,您都只需从 index.js 中导出其导出内容,如下所示:

索引.js

export * from './classA'
export * from './classB'
// ... add here any other file in the directory
// Also you can export a default with a name of your choosing
// export { default as ClassC } from './classC'

现在我们只需导入 index.js 文件即可导入所有这些类

根.js

import * as Classes from './classes'

console.log(Classes) //=> { ClassA, ClassB }

关于javascript - 当我只知道父类的名字时与类一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52835469/

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