javascript - 可以初始化动态模块并将它们联合起来的 Api 类
问题描述
我试图找出一种模式,其中单个类可以实例化动态模块类并将它们附加到自身。
例如,我有
模块 1
class object1 {
construct(params) {
this.params = params
}
}
module.exports = object1
模块 2
class object2 {
construct(params) {
this.params = params
}
}
module.exports = object2
还有一个 API 模块,它会以某种方式实例化无限数量的对象并将它们附加到自身。
class Api {
}
module.exports = new Api;
API 模块的功能应该像这样工作let obj = api.object1('param1').object2('param2')
//{ object1: {params: 'param1'}, object2: {params: 'param2'}}
我可以手动设置 api 类中的所有方法,但这不是我要寻找的解决方案。我希望能够初始化所有模块并将它们动态附加到 api 类,将所有参数传递给模块并在输出中生成对象,这有点反映了上面的示例。
它完全可以实现吗?或者也许有人认出了这种模式并且知道它叫什么,以便我可以进一步研究它?我尝试使用代理来实现这一点,但没有成功。
解决方案
推荐阅读
- haskell - 派生 MonadThrow、MonadCatch、MonadBaseControl、MonadUnliftIO 等是否安全?
- c# - 多列分组和求和
- java - 无法读取名称为 [xx] 在命名空间 ['default'] 中的 configmap
- graphql - 为什么我的查询没有返回枚举数组
- apache-spark - 找不到缺课的罐子
- sql - SR0004 - 没有用作 IN 谓词测试表达式的索引的列可能会降低性能
- sql - 将硬编码和选定的值插入表中
- windows - WebRTC 示例在本地运行时在 Chrome 和 Firefox 上失败
- asp.net-mvc - 正则表达式在数据注释中没有按预期工作(可能是语法问题)
- wordpress - 我正在尝试使用 Duplictor 插件将实时 wordpress 网站迁移到我的本地计算机,但我遇到了一些问题