我有 app.js
var List = {};
var Entity = require('./entity.js');
var main = new Entity(); // should be changed List
console.log(List) // still empty
和 entity.js
class Entity {
constructor(){
this.id = Math.random();
List[this.id] = this; // List == undefined
}
}
module.exports = Entity;
如何使用列表作为全局变量?
答案 0 :(得分:2)
只需导入List
中的entity.js
:
在app.js结尾:
module.exports = List;
entity.js开头:
const List = require('./app.js');
如果您的app.js
也需要导出其他内容,请改为导出具有List
属性的对象:
在app.js结尾:
module.exports.List = List;
entity.js开头:
const List = require('./app.js').List;
您还可以考虑将List
放入app.js
和entity.js
都导入的模块中。
不要使List成为全局变量,如果可能的话-与模块系统一起使用,没有全局污染的显式依赖关系是模块系统的主要功能之一优势。
答案 1 :(得分:0)
您需要传递List参数并在构造函数中访问...
new Entity(List);
constructor(List){
...