可以初始化动态模块并在其幕后将其合并的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;

The functionality of API module should work like so let obj = api.object1('param1').object2('param2') // { object1: {params: 'param1'}, object2: {params: 'param2'}}

我可以手动设置api类中的所有方法,但这不是我要寻找的解决方案。我希望能够初始化所有模块并将它们动态附加到api类上,将所有参数传递给模块并在输出中生成对象,以反映上述示例。

完全可以实现吗?也许有人认识到这种模式并知道它叫什么,以便我可以进一步研究它?我尝试使用Proxy实现此目标,但未成功。

回复