Tengo una clase grande, llamada juego, y tiene muchas clases y funciones anidadas.
class Game { constructor(opts) { this.Thing = class { constructor() { //do stuff } //a ton of functions } //a ton of functions } }Me gustaría una manera de organizarlo y hacerlo más fácil de desarrollar.
Estaba pensando en dividir la clase en varios archivos, pero no sé cómo funcionaría.
¿Hay alguna forma de dividir esta clase en varios archivos? Si no, ¿de qué otra manera puedo organizarlo? ¿Hay alguna forma mejor?
Una forma de hacer esto menos detallado es definir algunas (o todas) de las funciones dentro de otros archivos. Solo asegúrese de usar la palabra clave function en lugar de una función de flecha para que cuando haga referencia a this , esté haciendo referencia a la clase en la que finalmente se coloca. Por ejemplo, puede hacer algo como esto en un archivo:
export function method() {}y luego inclúyalo así en su archivo principal:
import { method } from './method'; class BigClass { constructor() {} method = method } Cualquier referencia a this dentro del método se referirá a la instancia a la que se llama.
En cuanto a las clases anidadas, debería poder exportar la clase desde otro archivo de la siguiente manera:
export class OtherClass { constructor() {} } import { OtherClass } from './otherclass' class BigClass { constructor() {} OtherClass = OtherClass; }