metodos-y-variables-estaticos-en-clases

Métodos y variables estáticos en JavaScript

Un método o variable estática es aquella que pertenece a la clase, no a las instancias de esa clase.

Esto significa que las variables y métodos estáticos son compartidos por todas las instancias de la clase.

En consecuencia, no pueden acceder directamente a las propiedades de instancia, ya que no están vinculados a ninguna instancia específica de la clase.

Variables estáticas

En JavaScript, las variables estáticas se definen utilizando la palabra clave static, que indica que esa propiedad pertenece a la propia clase.

class Contador {
    static contador = 0;

    constructor() {
        Contador.contador++;
    }

    static obtenerContador() {
        return Contador.contador;
    }
}

const c1 = new Contador();
const c2 = new Contador();
const c3 = new Contador();

console.log(Contador.obtenerContador()); // Muestra 3

En este ejemplo:

  • Contador.contador es una variable estática que se incrementa cada vez que se crea una nueva instancia de la clase Contador.
  • Contador.obtenerContador() es un método estático que permite acceder al valor de la variable estática contador, sin necesidad de crear una instancia de la clase.

Recuerda que las variables estáticas no se pueden acceder a través de instancias de la clase. Siempre se accede a ellas a través de la propia clase.

Métodos estáticos

De igual forma, método estático es un método que pertenece a la clase en lugar de a una instancia de la clase. Esto quiere decir que puedes invocar el método directamente en la clase sin necesidad de crear un objeto.

Al igual que las variables, los métodos estáticos también se definen utilizando la palabra clave static.

class Matematica {
    static sumar(a, b) {
        return a + b;
    }

    static restar(a, b) {
        return a - b;
    }
}

console.log(Matematica.sumar(5, 3));  // Muestra 8
console.log(Matematica.restar(5, 3)); // Muestra 2

Aquí

  • Hemos creado una clase llamada Matematica con dos métodos estáticos: sumar y restar.
  • Ambos métodos pueden ser invocados sin crear una instancia de la clase.