[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/class [Back]  [Original]

expresin class - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

expresin class

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since marzo de 2016.

La expresin class es una forma de definir una clase en ECMAScript 2015 (ES6). Similar a las funciones, las expresiones de clase pueden ser nombradas o no. Si se nombran, el nombre de la clase es local slo en el cuerpo de la clase. Las clases en JavaScript utilizan herencia basada en prototipos.

In this article

Sintaxis

var MyClass = class [className] [extends] {
  // class body
};

Descripcin

Una expresin de clase tiene una sintaxis similar a la declaracin de una clase. Sin embargo, con las expresiones de clases, est permitido omitir el nombre de la clase ("identificador de enlace"), cosa que no se puede hacer con las declaraciones de clases. Adems, las expresiones de clases permiten redefinir/redeclarar clases y no lanzar ningn tipo de error como las declaraciones de clases. La propiedad constructor es opcional. Y el typeof de las clases generadas con esta palabra clave siempre ser "function".

Tal y como en la declaracin de clases, el cuerpo de la expresin de clase se ejecuta en modo estricto.

js
"use strict";
var Foo = class {}; // la propiedad constructor es opcional
var Foo = class {}; // Se permite repetir declaraciones

typeof Foo; // devuelve "function"
typeof class {}; // devuelve "function"

Foo instanceof Object; // true
Foo instanceof Function; // true
class Foo {} // Lanza TypeError, no permite volver a declararla

Ejemplo

Una clase sencilla

Esta es una sencilla expresin de clase annima a la que se puede hacer referencia utilizando la variable "Foo".

js
var Foo = class {
  constructor() {}
  bar() {
    return "Hello World!";
  }
};

var instance = new Foo();
instance.bar(); // "Hello World!"
Foo.name; // "Foo"

Expresiones de clase con nombre

Si se quiere hacer referencia a la clase actual dentro del cuerpo de la clase, se puede crear una expresin de clase con nombre. Este nombre slo ser visible en el mismo contexto de la expresin de clase.

js
var Foo = class NamedFoo {
  constructor() {}
  whoIsThere() {
    return NamedFoo.name;
  }
};
var bar = new Foo();
bar.whoIsThere(); // "NamedFoo"
NamedFoo.name; // ReferenceError: NamedFoo no est definido
Foo.name; // "NamedFoo"

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-class-definitions

Compatibilidad con navegadores

Ver tambin


Web Proxy Viewer  |  New URL  |  Original Page