class

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016.

La declaración class crea una nueva clase con el nombre proporcionado utilizando la herencia basada en prototipos

También se puede definir una clase usando una expresión de clase. Pero a diferencia de las expresiones de clases, la declaración de clases no permite que una clase existente sea declarada de nuevo y en caso de hacerse, lanzará un error de tipo.

Sintaxis

js
class name [extends] {
  // Contenido de la clase
}

Descripción

De la misma manera que con las expresiones de clase, el contenido de una clase se ejecuta en modo estricto.

Las declaraciones de clases no están izadas (al contrario que las declaraciones de funciones).

Ejemplos

Declaración sencilla de una clase

En el siguiente ejemplo, primero definimos la clase Polygon, luego extendemos de ella para crear la clase Square. Notar que super(), utilizado en el constructor, sólo puede ser llamado dentro del constructor y debe ser llamado antes de que la palabra clave this pueda ser usada.

js
class Polygon {
  constructor(height, width) {
    this.name = "Polygon";
    this.height = height;
    this.width = width;
  }
}

class Square extends Polygon {
  constructor(length) {
    super(length, length);
    this.name = "Square";
  }
}

Especificaciones

Specification
ECMAScript® 2025 Language Specification
# sec-class-definitions

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
class

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Has more compatibility info.

Ver también