2016-04-19 7 views
0

Ich verschiebe eine einfache JavaScript-Klasse in Node.js. In der Ebene Javascript verwende ich:Unkomplizierte Möglichkeit, Klassen in Node.js zu erweitern

class BlockMosaicStreamer extends MosaicStreamer{ 
} 

Ich kann nicht scheinen, eine einfache Möglichkeit zu finden, das in Node.js zu implementieren. In meinem Knoten Projekt in BlockMosaicStreamer.js ich habe:

'use strict'; 
function BlockMosaicStreamer(){ 
} 

Wie würde ich MosaicStreamer erstrecken, die in ./MosaicStreamer.js ist?

'use strict'; 
function MosaicStreamer(){ 
} 
+0

[ 'util.inherits'] (https : //nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor) – Bergi

+0

@Bergi Kannst du etwas näher ausführen? Ich müsste "util" hinzufügen, dann würde die gewünschte Funktionalität mit "util.inherits (BlockMosaicStreamer, MosaicStreamer)" erhalten? –

+0

Ja, und setzen Sie einen 'MosaicStreamer.call (this, ...)' "super" Aufruf in den 'BlockMosaicStreamer' Konstruktor. – Bergi

Antwort

3

Es hängt davon ab, wie Sie Ihre erste Klasse definiert sind, schlage ich vor, so etwas wie dies mit:

class SomeClass { 
} 

module.exports = SomeClass 

dann in erweitern:

const SomeClass = require('./dir/file.js') 

class MyNewClass extends SomeClass { 
} 

module.exports = MyNewClass 
+0

Meine Klassen sind jedoch wie in der Frage gezeigt definiert. Die Verwendung von 'class' im Knoten verursacht viele Probleme –

+0

@ tibsar: Dann verwenden Sie einen Transpiler. Es sollte nichts mehr geben, was Sie davon abhält, ES6 heute zu benutzen. – Bergi

+0

@ tibsar, können Sie node.js aktualisieren, ich benutze 5.9.1 und es funktioniert gut. –

Verwandte Themen