Javascript Webpack ES6模块多类应用程序组织

Javascript Webpack ES6模块多类应用程序组织,javascript,class,webpack,es6-modules,es6-class,Javascript,Class,Webpack,Es6 Modules,Es6 Class,我第一次用webpack构建了一个应用程序,我正试着用头脑来组织课堂文件。我很难让代码正常工作。我还是ES6之类的新手,所以下面的代码可能非常错误,但我不确定它是我的方法/概念还是语法 条目是index.js,我也有这些文件 从“/js/App.js”导入应用程序; 从“./js/User.js”导入用户; 从“/js/Guest.js”导入来宾; const app=新app(); const user=新用户(); const guest=new guest(); $(文档).ready(函

我第一次用webpack构建了一个应用程序,我正试着用头脑来组织课堂文件。我很难让代码正常工作。我还是ES6之类的新手,所以下面的代码可能非常错误,但我不确定它是我的方法/概念还是语法

条目是
index.js
,我也有这些文件

从“/js/App.js”导入应用程序;
从“./js/User.js”导入用户;
从“/js/Guest.js”导入来宾;
const app=新app();
const user=新用户();
const guest=new guest();
$(文档).ready(函数(){
app.DatabaseStore.senddata();
log(user.getall());
});
src/js/app.js
主全局方法/变量类

从“/cookie.js”导入CookieStore;
从“./database.js”导入DatabaseStore;
导出默认类应用程序{
构造函数(){
this.cookieStore=新的cookieStore();
this.databaseStore=新数据库存储();
}
gettime(){
返回“时间”;
}
}
src/js/user.js
用于
用户的方法

从“/App.js”导入应用程序;
导出默认类用户扩展应用程序{
构造函数(){
this.mydata=App.cookieStore.getData();
console.log(this.mydata);
}
getall(){
返回['foo','bar','baz'];
}
}
src/js/guest.js
用于
来宾的方法

从“/App.js”导入应用程序;
导出默认类来宾扩展应用程序{
构造函数(){
this.mydata=App.cookieStore.getData();
}
}
src/js/cookie.js
cookie操作方法

导出默认类CookieStore{
构造函数(){}
mydata(){return'foo';}
}
src/js/database.js
firebase方法

导出默认类数据库存储{
构造函数(){}
senddata(){
this.mydata=App.cookieStore.getData();
}

您正在尝试静态访问实例属性。在尝试访问
cookieStore
属性之前,您需要创建一个
App
类的实例。您可以创建一个实例并将其导出到App.js中以获得singleton实例

//in your app.js 
export const app = new  App();
在其他文件中

import {app} from './js/app.js'

app.cookieStore.getData();

到底是什么问题?例如,在
User
类中调用
App.cookieStore.getData()
会产生找不到的方法。这很完美,似乎修复了
guest.js
User.js
。但是当我添加
import{App}从“./js/app.js”
index.js
我无法访问
app.databaseStore.senddata()
您编写的
app.databaseStore.senddata();
而不是
app.databaseStore.senddata();
检查这些行`$(文档).ready(函数(){app.databaseStore.senddata();console.log(user.getall()););`在database.js中的数据库构造函数中,使cookieStore成为依赖项
构造函数(cookieStore){this.cookieStore=cookieStore;
然后在app.js中
this.databaseStore=new databaseStore(this.cookieStore);
您可以使用es6
=>
函数来保留范围,即
新承诺(()=>{…}