似乎你不能在Node.js中扩展一个类对象(在本例中用作枚举)。实施例
富
class Foo {}
Foo.action = {};
Foo.action.jump = 1;
module.exports = Foo;
酒吧
var Foo = require('./foo');
var Baz = require('./baz');
class Bar extends Foo {
constructor(){
super();
this.baz = new Baz();
}
}
Bar.action.stay = 2;
module.exports = Bar;
用法(编辑,在课堂上使用)
var Bar = require('./bar');
class Baz {
constructor(){
console.log(Bar.action); //undefined
}
}
module.exports = Baz;
我认为这是一个周期性依赖问题。
答案 0 :(得分:1)
我认为这是一个周期性依赖问题。
是的,使用赋值到Common.js Bar
的{{1}}和Baz
之间的周期性依赖关系会使module.exports
成为空对象在Baz.js模块中。解决方案是use module properties only。 (顺便说一句,这在声明性ES6模块中运行良好)。