Opuesto a mi expectativa, no puedo acceder a mi campo de clase myLibrary en el método de clase initialize() .
class ViewController { myLibrary = new Library(); initialize() { console.log(myLibrary); // undefinedLa única "solución" que encontré fue declarar myLibrary fuera de la clase como una variable global. ¿Hay alguna manera de declarar campos en una clase y luego, bueno, usarlos?
Las clases de JavaScript no funcionan de la misma manera que las clases de Java.
Para acceder a las propiedades de un objeto , debe indicar el objeto y luego acceder a una propiedad en él. No se tratan como variables en el ámbito actual.
Dentro de un método, la palabra clave this le dará el objeto asociado. (Consulte ¿Cómo funciona la palabra clave "esto"? para obtener una explicación menos simplificada).
Entonces necesita this.myLibrary en lugar de solo myLibrary .
class Library { … } class ViewController { constructor() { this.myLibrary = new Library(); } log() { console.log(this.myLibrary); } } const viewController = new ViewController(); viewController.log()