节点js扩展inheritance对象(作为枚举)

看起来好像你不能在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; 

我相信这是一个周期性的依赖性问题。

我相信这是一个周期性的依赖性问题。

是的, BarBaz之间的周期性依赖关系,使用赋值给Common.js module.exports ,使Bar成为Baz.js模块中的一个空对象。 解决scheme是仅使用模块属性 。 (顺便说一句,这将在声明ES6模块中工作正常)。