Node.js v6.2.0类的扩展是不是函数错误?
所以我试图在节点js中扩展一个类,编译器不断返回以下错误:
TypeError: Class extends value #<Object> is not a function or null
我检查了我是正确的出口类,我是,有什么想法? 我将在下面发布我的代码:
/handler/venue.js:
var VenueViews = require('../views/venue'); // If I remove this the error will dissapear (as expected) class Venue { constructor(data) { this.setDataHere = data; } main () { var View = new VenueViews(); // This doesn't run } } module.exports = Venue;
/views/venue.js:
var Venue = require('../handlers/venue'); console.log (Venue) // This returns {} ??? class VenueViews extends Venue { constructor() { super(); } } module.exports = VenueViews;
我知道节点支持这些es6 features
,所以我不确定他们为什么不工作?
编辑:
我不确定这是否会发生,但是当我login我的Venue
要求它返回一个空对象{}
。
console.log (Venue) // This returns {} ???
所以事实certificate,我在我的代码中有一个循环引用,在那里我正在importing
正在扩展的类importing
到本身正在扩展的类(绕口令:P)中。
显而易见的解决办法是简单地删除extends
引用,并find另一种做法,我试图实现。 在我的情况下,它将Venue
类的属性传递给VenueViews
构造函数。
例如var x = VenueViews(this)