| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/class | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
Esta caracterstica est consolidada y funciona en muchos dispositivos y versiones de navegador. Est disponible en todos los navegadores desde 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.
var MyClass = class [className] [extends] {
// class body
};
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.
"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
Esta es una sencilla expresin de clase annima a la que se puede hacer referencia utilizando la variable "Foo".
var Foo = class {
constructor() {}
bar() {
return "Hello World!";
}
};
var instance = new Foo();
instance.bar(); // "Hello World!"
Foo.name; // "Foo"
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.
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"
| Especificacin |
|---|
| ECMAScript 2027 LanguageSpecification # sec-class-definitions |
Esta pgina se modific por ltima vez el 17 dic 2024 por colaboradores de MDN.
Partes de este contenido son 19982026 de colaboradores individuales de mozilla.org. Contenido disponible bajo una licencia Creative Commons.
| Web Proxy Viewer | New URL | Original Page |