2015-01-15 10 views
7

Supponiamo che io sono una classe in un unico grande file in questo modo:Frazionamento definizione di classe in ES 6/Harmony

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

E voglio rompere la definizione di classe in modo che methodA, methodB, e methodC sono ciascuno definito nei propri file separati. È possibile?

risposta

6

Si dovrebbe essere in grado di, come class si suppone che sia solo lo zucchero sintassi per il solito prototipo di flusso di lavoro:

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

class MyClass { 
    constructor() { 
    } 
} 

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

export default MyClass 
+0

ma cosa succede se voglio avere metodi con proprietà? methodOne (a, b) – marschro

+0

'methodOne' come usare' methodTwo'? – GeminiYellow

1

@elclanrs ha dato una risposta corretta, ma vorrei modificarlo per consentire l'uso di this. Penso anche che questo sia più leggibile.

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

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

export default MyClass 

Suggerimento: anche se la classe è così grande che valso la suddiviso in più file, una soluzione migliore potrebbe essere quella di dividere la classe in più classi.

Problemi correlati