Javascript 将多个对象的属性共享到单个对象

Javascript 将多个对象的属性共享到单个对象,javascript,Javascript,试图找到如何将多个对象的属性共享给单个对象的方法 例如:我有app对象和homepage对象。想法非常简单,我想与app对象共享homepage对象的属性,并能够执行以下操作: const app = new App("some-client"); const { HomePage } = app.pages; HomePage.clickOnSignUpButton(); const-app={…} const主页={ 单击符号(){…} } app.clickOnSig

试图找到如何将多个对象的属性共享给单个对象的方法

例如:我有app对象和homepage对象。想法非常简单,我想与app对象共享homepage对象的属性,并能够执行以下操作:

const app = new App("some-client");
const { HomePage } = app.pages;
HomePage.clickOnSignUpButton();
const-app={…}
const主页={
单击符号(){…}
}
app.clickOnSignIn()
  • 我知道我可以简单地合并这两个对象,但这不是我的解决方案。计划是在将来添加更多页面,并且仍然能够在应用程序对象上使用点概念
更新:

我发现了解决这个问题的另一种可能的方法,但我不确定这是否是正确的方法

  • /pages/Homepage.js
    文件中使用此对象上的一些方法创建了Homepage对象
  • 导出常量主页={
    单击SignupButton(){},
    单击点火按钮(){},
    };
    
  • 还有一个对象,我称之为登录页面
  • export const LoginPage={
    FillUpSignInfo(){},
    单击放弃密码(){},
    };
    
  • 我将这些文件导出到
    /pages/index.js
  • 然后,我简单地将这些页面作为名称空间导入到我的
    app.js
    文件中,并创建了一些getter函数
  • 首先,它是例外的。使用这种方法,我可以通过我的应用程序类访问我的所有页面,现在,我可以执行以下操作:

    const app = new App("some-client");
    const { HomePage } = app.pages;
    HomePage.clickOnSignUpButton();
    

    你所说的“计划是在未来增加更多页面”是什么意思?为什么这会阻止你合并对象(我想你的意思是写一个单一的对象文字)?你可能正在寻找
    object.assign(app,homepage)。或者只是
    app.clickOnSignIn=function(){…}感谢Bergi研究这个问题。一点也不,这并不妨碍我合并多个对象,但我正在寻找更好的方法来实现这一点。顺便说一句,我做了一个改变来尝试你的例子,但它对我不起作用app.js导出常量app={};//pages/homepage.js从“./App.mjs”导入{App};const HomePage={click(){console.log(“clicking”);},};对象。分配(应用程序、主页);//test.js从“/App.mjs”导入{App};常量app=app;console.log(app.click());`>>TypeError:app.click不是一个函数,在这种情况下,您永远不会在测试中导入pages/homepage.js,因此它不会扩展
    app
    。更新:我看不出有任何理由使用
    app
    类。与其导入应用程序模块,不如实例化
    新应用程序
    ,并访问其
    页面上的属性
    ,似乎可以简化为从“/pages/index.js”导入{Homepage}”。使用这样的
    /pages/index.js
    模块可能有一个缺点,即无论您是否需要它们,您总是加载所有页面模块,尽管这取决于您的模块加载设置。
    const app = new App("some-client");
    const { HomePage } = app.pages;
    HomePage.clickOnSignUpButton();