Una clase JavaScript es un modelo para crear objetos. Una clase encapsula datos y funciones que manipulan los datos.
a diferencia de otros lenguajes de programación como Java y C++, Las Clases de JavaScript son sugar sintáctico sobre la herencia prototípica. En otras palabras, las clases ES6 son solo funciones especiales.
clases anteriores a ES6 revisited
antes de ES6, JavaScript no tenía conceptos de clases., Para imitar una clase, a menudo usamos una función de constructor como se muestra en el siguiente ejemplo:
salida:
Cómo funciona.
primero, cree el Person
como una función constructora que tenga un nombre de propiedad llamado name
. La función getName()
se asigna al prototype
para que pueda ser compartida por todas las instancias del tipo Person
.
a continuación, cree una nueva instancia del tipo Person
utilizando el operador new
., El objeto john
, por lo tanto, es una instancia de Person
y Object
a través de la herencia prototípica.,
las siguientes instrucciones utilizan el operador instanceof
para comprobar si john
es una instancia de Person
y Object
type:
Code language: JavaScript (javascript)
ES6 class declaration
ES6 introdujo una nueva sintaxis para declarar una clase como se muestra en este ejemplo:
Code language: JavaScript (javascript)
This Person
class behaves like the Person
escriba en el ejemplo anterior. Sin embargo, en lugar de usar una función de constructor, utiliza la palabra clave class
.,
en la clase Person
, el constructor()
es donde puede inicializar las propiedades de una instancia. JavaScript llama automáticamente al método constructor()
cuando instancias un objeto de la clase.
El siguiente crea un nuevo Person
objeto, que se llama automáticamente la etiqueta constructor()
del Person
clase:
Code language: JavaScript (javascript)
El getName()
se llama a un método de la etiqueta Person
clase., Al igual que una función de constructor, puede llamar a los métodos de una clase utilizando la siguiente sintaxis:
Code language: CSS (css)
por ejemplo:
Code language: JavaScript (javascript)
para verificar el hecho de que las clases son funciones especiales, puede usar el operador typeof
para verificar el tipo de div id=»3c742ef484″>
class.
Code language: JavaScript (javascript)
devuelve function
como se esperaba.,
el objeto john
también es una instancia de Person
y Object
types:
Code language: JavaScript (javascript)
Class vs.Custom type
a pesar de las similitudes entre una clase y un tipo personalizado definido a través de una función constructor, hay algunas diferencias importantes.
primero, las declaraciones de clase no se elevan como las declaraciones de función.
por ejemplo, si coloca el siguiente código encima de la sección Person
declaración de clase, obtendrá un ReferenceError
.,
Code language: JavaScript (javascript)
Error:
Code language: JavaScript (javascript)
en Segundo lugar, todo el código dentro de una clase ejecuta automáticamente en el modo estricto. Y no puedes cambiar este comportamiento.
En tercer lugar, los métodos de clase no son enumerables. Si usa una función de constructor, tiene que usar el método Object.defineProperty()
para hacer que una propiedad no sea enumerable.
Cuarto, llamar al constructor de clase sin el operador new
resultará en un error como se muestra en el siguiente ejemplo.,
Code language: JavaScript (javascript)
Error:
Code language: JavaScript (javascript)
Resumen
- Uso de JavaScript
class
palabra clave declara una nueva clase. - a
class
la declaración es azúcar sintáctica sobre herencia prototípica con mejoras adicionales.
- Fue este tutorial útil ?
- YesNo
Leave a Reply