Menu
Coddy logo textTech

Propiedades estáticas

Parte de la sección Programación Orientada a Objetos del Journey de JavaScript de Coddy — lección 32 de 56.

Las propiedades estáticas pertenecen a la clase misma, no a las instancias de la clase. Son compartidas entre todas las instancias.

Define una clase con una propiedad estática:

class Counter {
  // Define una propiedad estática
  static count = 0;
  
  constructor() {
    // Incrementa el contador estático cada vez que se crea una nueva instancia
    Counter.count++;
  }
}

Accede a la propiedad estática utilizando el nombre de la clase:

console.log(Counter.count); // 0

// Crea algunas instancias
const counter1 = new Counter();
const counter2 = new Counter();

console.log(Counter.count); // 2

Las propiedades estáticas son útiles para valores que deben compartirse entre todas las instancias o para constantes a nivel de clase. Por ejemplo:

class MathConstants {
  static GOLDEN_RATIO = 1.61803;
}

console.log(MathConstants.PI); // 3.14159
challenge icon

Desafío

Agrega propiedades estáticas PI y E a una clase MathConstants:

  1. Propiedad estática PI establecida en 3.14159
  2. Propiedad estática E establecida en 2.71828

Hoja de referencia

Las propiedades estáticas pertenecen a la clase misma, no a las instancias. Se comparten entre todas las instancias y se accede a ellas utilizando el nombre de la clase.

Define una propiedad estática utilizando la palabra clave static:

class Counter {
  static count = 0;
  
  constructor() {
    Counter.count++;
  }
}

Accede a las propiedades estáticas a través del nombre de la clase:

console.log(Counter.count); // 0

const counter1 = new Counter();
const counter2 = new Counter();

console.log(Counter.count); // 2

Las propiedades estáticas son útiles para constantes a nivel de clase:

class MathConstants {
  static PI = 3.14159;
  static E = 2.71828;
}

console.log(MathConstants.PI); // 3.14159

Pruébalo tú mismo

import { MathConstants } from './constants.js';

// Código de prueba - no modificar
console.log(MathConstants.PI);        // Debería mostrar 3.14159
console.log(MathConstants.E);         // Debería mostrar 2.71828
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación Orientada a Objetos