| [ 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.
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.
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"
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-class-definitions |
This page was last modified on 17 dic 2024 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |