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 prototypepara 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
classpalabra clave declara una nueva clase. - a
classla declaración es azúcar sintáctica sobre herencia prototípica con mejoras adicionales.
- Fue este tutorial útil ?
- YesNo
Leave a Reply