Javascript 导入没有文件名的类

Javascript 导入没有文件名的类,javascript,oop,Javascript,Oop,在javascript中,不必引用页面就无法导入类。我觉得这很难看 我有一个名为“DashboardPage”的类,它位于名为“DashboardPage.js”的文件名中 为了导入该类,我必须将该类导出到文件中,然后将其导入到另一个文件中。像这样 module.exports.DashboardPage = DashboardPage;//Export var DashboardPage = require("DashboardPage");//Import 现在,当我要创建新的仪表板页面

在javascript中,不必引用页面就无法导入类。我觉得这很难看

我有一个名为“DashboardPage”的类,它位于名为“DashboardPage.js”的文件名中

为了导入该类,我必须将该类导出到文件中,然后将其导入到另一个文件中。像这样

module.exports.DashboardPage = DashboardPage;//Export

var DashboardPage = require("DashboardPage");//Import
现在,当我要创建新的仪表板页面时。我得走了:

//Here is the problem. Why do I have to call the file name then the object. 
var page = new DashboardPage.DashboardPage(); 

我是在做傻事吗?这似乎很愚蠢。我来自C#背景,我可能走错了方向。

这实际上与JavaScript中的类无关,而是与CommonJS模块系统有关

require
只返回分配给
模块的值。导出
。因此,您也可以通过直接指定给
模块来导出值。导出

module.exports = DashboardPage;
那么当你这么做的时候

var DashboardPage = require("DashboardPage");

DashboardPage
已经是您的类,您可以通过调用
new DashboardPage()

嗨,Felix,谢谢您的回答,来创建一个新实例。还有一个问题,也许你知道答案。var LoginPage=新要求(“LoginPage”);var Page=新登录页面();我上面提供的两行代码,是否可以将它们放在一行代码中?有点像var page=newrequired(“LoginPage”)();????对始终可以使用生成分配给变量的值的表达式替换变量。