Javascript “访问的好方法”;“上层阶级”;嵌套类中的方法?

Javascript “访问的好方法”;“上层阶级”;嵌套类中的方法?,javascript,Javascript,假设我有一个程序: 类程序{ 构造函数(){ this.profileManager=新的profileManager(); } saveProgramConfig(){ // ... } } 如果在ProfileManager中发生了某些事情,并且需要保存程序配置,从ProfileManager类内部访问此特定实例的saveProgramConfig方法的最佳方式是什么?您可以将实例作为参数传递,以便两个实例都有彼此的链接: this.profileManager = new Profile

假设我有一个程序:

类程序{
构造函数(){
this.profileManager=新的profileManager();
}
saveProgramConfig(){
// ...
}
}

如果在ProfileManager中发生了某些事情,并且需要保存程序配置,从
ProfileManager
类内部访问此特定实例的
saveProgramConfig
方法的最佳方式是什么?

您可以将实例作为参数传递,以便两个实例都有彼此的链接:

this.profileManager = new ProfileManager(this);

并让ProfileManager将实例保存到它自己的一个属性中,并在需要时对其调用
saveProgramConfig

以下方法有什么问题?您可以在ProfileManager类中访问程序的测试方法

 class Program  {
       test() {
         return "Hello World";
    }
 }

class ProfileManager  extends Program  {
  constructor() {
    super();
  }
  
  main() {
    return this.test();
  }
}

const tp = new B;
console.log(tp.main());

为什么不使用继承?我认为通过执行
ProfileManager扩展程序
,通过创建一个新的
ProfileManager
实例,它还将创建一个新的
程序
实例(ProfileManager的父类),但是我需要ProfileManager来访问这个特定
程序
实例的方法。所以我只需要在程序构造函数中执行
this.ProfileManager=new ProfileManager(this)
?这就是我一直在做的事情,我只是认为有更好的方法(或者我做错了)它可以工作-有时这是一个好的解决方案,但根据我的经验,在第一时间拥有这类类类类通常是一个迹象,在结构上不太正确(IMO)。我明白,你对如何构建这样的东西有什么建议吗?我不会陷入任何糟糕的软件设计陷阱?这取决于你试图完成什么,每种情况都是不同的。至少在我的经验中,我总是发现普通函数和普通对象在编写代码时更有意义,但其他人可能会有不同的偏好。如果你想避开它(这很好,我也是这么做的),避免上课。如果您想要OOP,请使用类。如果我不仅有管理程序配置文件的
ProfileManager
,而且还有管理当前下载的
DownloadManager
,该怎么办?如果两者都扩展了Program类,那么说
newprofilemanager
newdownloadmanager
是否意味着我也会创建两个
Program
类(由这两个类继承)?我只需要运行一个
程序
实例。不明白。。?为什么必须创建两个程序类。如果是这样,您可以在ProfileManager类中扩展DownloadManager,然后在程序中扩展ProfileManager,这样您就可以访问programManager和DownloadManager。为什么要编写两个类?
DownloadManager
ProfileManager
是这个理论程序中两个独立的“特性”。它们之间没有真正的联系,每个
程序
实例只有一个连接。所以我认为继承不起作用,因为创建DownloadManager&ProfileManager意味着我将创建两个程序类(因为两个管理器都扩展了程序类),我只需要它们位于这个特定的
程序
实例下。