循环依赖关系超级表达式必须为空或函数

问题描述:

我们有循环依赖关系结构,应该是精细的逻辑。 Light imports导入导入Light的NodeManager的Node。当运行代码,我们得到以下循环依赖关系超级表达式必须为空或函数

"Super expression must either be null or a function" 

节点管理器

// in NodeManager.js 
import Light from '../../Light.js' 

class NodeManager { 
    static _instance; 
    static getInstance() { 
    if(NodeManager._instance === undefined) { 
     NodeManager._instance = new NodeManager(); 
    } 
    return NodeManager._instance; 
    } 
    ... 
    addNode(node){ 
    ... 
    if(node instanceOf Light){ 
     ... 
    } 
    ... 
    } 
} 

节点

// in Node.js 
import NodeManager from '../../NodeManager.js' 
class Node { 
    constructor() { 
    ... 
    NodeManager.instance().addNode(this); 
    ... 
    } 
} 

// in Light.js 
import Node from '../../Node.js' 
class Light extends Node { 
    constructor() { 
    super();   
    ... 
    } 
} 

出于某种原因,节点的光导入未因此Light.j工作当调用super时抛出错误。我不确定如何解决这个问题。任何帮助表示赞赏。

super()必须是您在构造函数中调用的第一件东西(请参阅here)。 好像你在Node类的构造函数中缺少super()调用。

+0

不,我叫超级为了简洁起见,我只是把它放在外面。 –