2017-08-08 76 views
0

我們有循環依賴關係結構,應該是精細的邏輯。 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時拋出錯誤。我不確定如何解決這個問題。任何幫助表示讚賞。

回答

0

super()必須是您在構造函數中調用的第一件東西(請參閱here)。 好像你在Node類的構造函數中缺少super()調用。

+0

不,我叫超級爲了簡潔起見,我只是把它放在外面。 –

相關問題