Contenido del curso

Introducción a JavaScript

Estructuras de Control y Lógica

Manipulación de Arrays

Programación Orientada a Objetos

Asincronía en JavaScript

Clases en JavaScript con sintaxis moderna

Resumen

Las clases en JavaScript llegaron en 2015 como una nueva forma de construir objetos con una sintaxis más limpia, parecida a lenguajes como Java. Si ya trabajas con funciones constructoras, esta guía te muestra cómo migrar a la sintaxis moderna que domina hoy la programación orientada a objetos en JS.

¿Qué es una clase en JavaScript y para qué sirve?

Una clase funciona como un blueprint, es decir, un molde a partir del cual vas a construir diferentes objetos con la misma estructura. No es una característica completamente nueva del lenguaje: es lo que se conoce como sugar syntax, una capa más amigable encima de las funciones constructoras que ya existían.

¿Qué es sugar syntax? Es una sintaxis más legible que hace lo mismo que el código original por debajo. En este caso, las clases siguen creando objetos como las funciones constructoras, pero se leen mejor.

La idea central es simple: defines una vez la estructura y luego generas tantas instancias como necesites, cada una con sus propios valores.

¿Cómo se declara una clase y su método constructor?

Para empezar usas la palabra reservada class, seguida del nombre que iniciará con mayúscula por convención. Dentro de la clase, lo primero que defines es el método constructor, que se encarga de configurar las propiedades de cada objeto que nazca del molde.

El constructor recibe los argumentos que personalizan cada instancia y los asigna a la clase usando la palabra reservada this, que hace referencia al objeto que se está creando en ese momento.

javascript class Persona { constructor(nombre, edad) { this.nombre = nombre; this.edad = edad; }

saludar() { console.log(Hola, mi nombre es ${this.nombre} y tengo ${this.edad} años); } }

¿Qué diferencia hay entre propiedades y métodos dentro de una clase?

Las propiedades son los datos que describen al objeto, como nombre y edad. Los métodos son funciones que viven dentro de la clase y definen comportamientos, como saludar. Ambos conviven dentro del mismo bloque, pero cumplen roles distintos: uno guarda información, el otro la usa.

¿Qué hace this dentro de una clase? this apunta a la instancia que se está creando. Cuando escribes this.nombre, le estás diciendo: "esta propiedad pertenece al objeto actual".

¿Cómo creo una nueva instancia con la palabra reservada new?

Una clase por sí sola no hace nada, es solo el molde. Si llamas un método sin instanciar antes, vas a recibir undefined porque las propiedades no tienen valores asignados todavía. Para darle vida necesitas crear instancias con new.

La palabra reservada new conecta con el constructor y le pasa los valores que rellenan las propiedades. Cada instancia es independiente y guarda sus propios datos.

javascript const persona1 = new Persona("Mariana", 25); persona1.saludar(); // Hola, mi nombre es Mariana y tengo 25 años

En este ejemplo, persona1 es una instancia de la clase Persona. Los argumentos "Mariana" y 25 viajan al constructor y se convierten en el valor de this.nombre y this.edad. Cuando llamas persona1.saludar(), el método ya tiene datos reales con los que trabajar.

¿Por qué usar clases en lugar de funciones constructoras?

Las dos opciones generan objetos, pero las clases ganan en legibilidad y se alinean con la forma en que otros lenguajes orientados a objetos estructuran el código. De aquí en adelante, casi todo lo que veas en programación orientada a objetos en JavaScript va a usar esta sintaxis: class, constructor, métodos y new para instanciar.

Si quieres practicar, intenta crear una clase distinta, por ejemplo Producto con propiedades nombre y precio, y un método que muestre la información. ¿Qué clase se te ocurre construir primero? Cuéntalo en los comentarios.