Actualmente estoy aprendiendo Javascript. Cuando ejecuto el siguiente código, no estoy definido. No estoy seguro de qué está mal. Todo parece estar bien, Cualquier ayuda será apreciada. Gracias.
class User{ constructor(){ this.array = [1, 2, 3] } static getNumber(){ return console.log(this.array) } } User.getNumber()En primer lugar, debe crear una nueva instancia de User con new User() o new User si desea poder acceder a las propiedades de la instancia (como la array ), porque se crean con this.array = ... . De los documentos web de Mozilla:
La palabra clave static define un método estático o una propiedad para una clase, o un bloque de inicialización estático de clase (consulte el enlace para obtener más información sobre este uso). No se pueden invocar métodos estáticos ni propiedades estáticas en instancias de la clase. En su lugar, se llaman en la propia clase.
Los métodos estáticos suelen ser funciones de utilidad, como funciones para crear o clonar objetos, mientras que las propiedades estáticas son útiles para cachés, configuración fija o cualquier otro dato que no necesite replicar entre instancias.
Debido a que se llama a getNumber en el propio constructor, no tiene acceso a ninguna de las propiedades de la instancia (la única es this.array ). Cuando se llama a new User , crea this.array , pero solo para la instancia, no para el constructor.