2015-01-15 4 views
7

Angenommen, ich habe eine Klasse in einer großen Datei wie folgt aus:Aufspaltung Klassendefinition in ES 6/Harmonie

export default class { 
    constructor() {} 
    methodA() {} 
    methodB() {} 
    methodC() {} 
} 

Und ich die Klassendefinition brechen wollen, so dass methodA, methodB und methodC jeweils in eigenen separaten Dateien definiert. Ist das möglich?

Antwort

6

Sie sollten in der Lage sein, wie class nur sollen Syntax Zucker sein für den üblichen Prototyp Workflow:

import methodOne from 'methodOne' 
import methodTwo from 'methodTwo' 

class MyClass { 
    constructor() { 
    } 
} 

Object.assign(MyClass.prototype, {methodOne, methodTwo}) 

export default MyClass 
+0

aber was, wenn ich Methoden mit Eigenschaften haben möchte? methodOne (a, b) – marschro

+0

'methodOne' wie benutzt man' methodTwo'? – GeminiYellow

1

@elclanrs gab eine richtige Antwort, aber ich würde es ändern, für die Verwendung zu ermöglichen, this. Ich denke auch, dass das besser lesbar ist.

import methodOne from 'methodOne' 
import methodTwo from 'methodTwo' 

class MyClass { 
    constructor() { 
    this.methodOne = methodOne.bind(this) 
    this.methodTwo = methodTwo.bind(this) 
    } 
} 

export default MyClass 

Tipps: obwohl, wenn Ihre Klasse so groß ist, dass es in mehrere Dateien aufgeteilt Optionsscheine wird, eine bessere Lösung könnte die Klasse in mehrere Klassen aufgeteilt werden.