class

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

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.

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

Especificaci贸n Estado Comentarios
ECMAScript 2015 (6th Edition, ECMA-262)
La definici贸n de 'Class definitions' en esta especificaci贸n.
Standard Definici贸n inicial.
ECMAScript (ECMA-262)
La definici贸n de 'Class definitions' en esta especificaci贸n.
Living Standard  

Compatibilidad en navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

Caracter铆stica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte b谩sico 42.0 45 (45) ? ? ?
Array subclassing 43.0 Sin soporte ? ? ?
Caracter铆stica Android Android Webview Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome para Android
Soporte b谩sico Sin soporte 42.0 45.0 (45) ? ? ? 42.0
Array subclassing Sin soporte 43.0 Sin soporte ? ? ? 43.0

Ver tambi茅n