[Instructor} En esta lección, vamos a hablar sobre por qué deberíamos considerar usar Sintaxis de la nueva clase de JavaScript. Así que para empezar, seamos claros. No es como si no pudieras hacer programación de estilo orientada a objetos en JavaScript antes, es solo que no hubo específicamente algo llamado la clase, que podrías crear. Pero podrías crear este contenedor para propiedades, comportamientos, de algo que querías agrupar como un objeto. Y esta es la forma en que lo hicimos. Entonces creamos una función, y enviamos algunos parámetros en formato. Esto sirve al propósito de el constructor del objeto. Y solo asigno esos parámetros de entrada a las cosas que creo como propiedades. Este punto lo convierte en una propiedad de lo que eventualmente será este objeto que creamos. Donde la sintaxis se vuelve un poco más turbia, al estilo de la vieja escuela, es que para agregar definiciones de métodos en este objeto, los agregaríamos al prototipo de esta función original. No es que no haya funcionado, funcionó y todavía lo hace, pero si es relativamente nuevo en el uso de esto, puede parecer un poco torpe, un poco extraño. Entonces, para este objeto de muestra Tengo estos cuatro métodos que creé y agregué. Además, podrías heredar, pero de nuevo, tal vez no sea una sintaxis tan familiar, como lo habrías hecho, si ha trabajado con otros lenguajes orientados a objetos. Si fue una solicitud de vacaciones, esta es una solicitud especial, y esto llama a ese constructor del otro objeto, hace que todos mis otros métodos de prototipos estén disponibles. Y ahí voy. Como dije, esto funciona, todavía funciona. Pero con las versiones más nuevas de JavaScript con ECMAScript 2015, tenemos una palabra clave de clase real en JavaScript. Y ahora podemos crear un constructor. Y lo que lo convierte en un constructor, es que en realidad usa la palabra constructor. Ahora, a diferencia de otros idiomas, solo puede tener un constructor. JavaScript todavía no se sobrecarga como lo hacen otros idiomas. Pero puedes ver aquí el proceso, donde asignamos propiedades es básicamente lo mismo. Y si miro estos otros métodos, podríamos mirar hacia atrás en ese otro código, y vea el código dentro de estos, no es diferente que en los otros casos, pero tiene mucho más sentido, porque ahora, y puedes ver cuando lo colapso, todo este código está dentro de esta definición de clase. Está dentro de estos tirantes. Es visualmente evidente que todo es parte de esta clase. La herencia también cambia. Ahora puedo usar la palabra clave class y extiende y usa el nombre de la clase base. Y de mi método constructor aquí, super es lo que uso para llamar al constructor de la clase que esto extiende. Que, de nuevo, son las mejores prácticas, estableces una estructura de marco de clases. Y también puedo agregar mis otras propiedades a este objeto según sea necesario. Entonces, si está creando objetos, la forma preferida de ir ahora, sería utilizar la sintaxis de la clase. Es principalmente azúcar sintáctico, porque facilita este trabajo. Si vas y miras los internos, Verá que una clase es realmente una función especial. Sin embargo, existen algunas diferencias. Las definiciones de funciones se elevan, las definiciones de clase no lo son, así que izar recuerda es solo esa función las decoraciones se guardan en la memoria antes de ejecutar cualquier código. Entonces, potencialmente puedes usar la función antes de declararlo. Yo mismo prefiero la clase por esa razón. Hace que mi código sea más fácil de leer. El cuerpo de la clase también se ejecuta en modo estricto, por lo que también tiene garantizada la optimización del código. Gracias por ver, en la próxima lección, veremos cuál es la estructura común de una definición de clase.