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