typestar

Clases, la parte moderna en JavaScript

Declaración de campos, miembros privados, bloques static y accesores.

class Session {
  #runs = [];
  static created = 0;

  static {
    Session.created = 0;
  }

  constructor(lang) {
    this.lang = lang;
    Session.created += 1;
  }

  record(tpm) {
    this.#runs.push(tpm);
    return this;
  }

  get best() {
    return this.#runs.length ? Math.max(...this.#runs) : 0;
  }

  static from(lang, ...runs) {
    const session = new Session(lang);
    runs.forEach((tpm) => session.record(tpm));
    return session;
  }
}

const session = Session.from("go", 98, 104);
console.log(session.best, Session.created, Object.keys(session));

Cómo funciona

  1. Un campo #name es privado de verdad: ninguna reflexión lo alcanza.
  2. Los campos de clase reemplazan asignar en el constructor.
  3. Los miembros y bloques static pertenecen a la clase misma.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
31
Caracteres a escribir
508
Tokens
156
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 99 segundos.

Escribe este fragmento

Paso 2 de 3 en Clases; paso 36 de 43 en Fundamentos del lenguaje.

← Anterior Siguiente →