Contenido del curso
Configuracion
¿Qué se implementó en ES6?
- 4

let, const y arrow functions en ES6
15:29 min - 5

Template literals en JavaScript ES6
08:11 min - 6

Parámetros por defecto en funciones ES6
05:46 min - 7

Desestructuración de arrays y objetos en JavaScript
05:33 min - 8

Spread y rest parameters en JavaScript
07:30 min - 9

Playground: Combina objetos JSON con el Spread Operator
- 10

Object literals abreviados en ES6
05:42 min - 11

Promesas en JavaScript con resolve y reject
08:09 min - 12

Clases en JavaScript con getters y setters
Viendo ahora - 13

Módulos en JavaScript con import y export
09:48 min - 14

Playground: Obtén una lista de películas
- 15

Generators en JavaScript: control del estado
07:19 min - 16

Playground: Generador de identificadores para michis
- 17

Método add() y encadenamiento en Sets JS
04:36 min
¿Qué se implementó en ES7?
¿Qué se implementó en ES8?
¿Qué se implementó en ES9?
¿Qué se implementó en ES10?
¿Qué se implementó en ES11?
¿Qué se implementó en ES12?
¿Qué se implementó en ES13?
Recapitulación
Clases en JavaScript con getters y setters
Resumen
Trabajar con clases en JavaScript se vuelve mucho más claro cuando entiendes que son una mejora sintáctica sobre la herencia basada en prototipos. Aquí aprenderás a declararlas, instanciarlas y aprovechar constructores, métodos, getters y setters con ejemplos prácticos pensados para quien ya domina lo básico del lenguaje.
Las clases se introdujeron en ECMAScript 2015, también conocido como ES6. Y ojo con esto: el año no siempre coincide con el número de versión, así que no te confundas cuando leas documentación oficial.
¿Qué es una clase en JavaScript y cómo se declara?
Una clase es una plantilla para crear objetos con una sintaxis más amigable que los prototipos tradicionales. No introduce un modelo de herencia nuevo; simplemente lo hace más legible.
Para declarar una clase usas la palabra reservada class, un nombre y un bloque [02:30]:
javascript class User { }
Y para crear una instancia, usas la palabra reservada new:
javascript const newUser = new User();
Con esas dos piezas ya tienes la base. Lo interesante viene cuando agregas métodos y un constructor.
¿Qué significa instanciar una clase? Es crear un objeto a partir de la plantilla que define la clase, usando
new. Cada instancia es independiente, aunque compartan estructura.
¿Cómo agrego métodos y un constructor a una clase?
Los métodos se declaran dentro del bloque de la clase sin la palabra function. El constructor es un método especial que se ejecuta automáticamente al crear la instancia [05:20].
javascript class User { constructor() { console.log("Nuevo usuario"); } greeting() { return "Hello"; } }
const gndx = new User(); console.log(gndx.greeting());
Al ejecutar new User(), se dispara el console.log del constructor. Ese es el punto clave: el constructor inicializa elementos en el momento exacto en que la instancia nace.
Puedes crear varias instancias de la misma clase y cada una tendrá acceso a los mismos métodos:
javascript const developer = new User(); console.log(developer.greeting());
Dos instancias distintas, misma clase, mismo método disponible. Así funciona la reutilización.
¿Para qué sirve la palabra clave this dentro de una clase?
this hace referencia al elemento padre que contiene la propiedad o método [09:15]. Dentro de una clase, this apunta a la instancia que se está creando, lo que te permite guardar y recuperar valores propios de cada objeto.
javascript
class User {
constructor(name) {
this.name = name;
}
speak() {
return "Hello";
}
greeting() {
return ${this.speak()}, ${this.name};
}
}
const ana = new User("Ana"); console.log(ana.greeting());
El resultado es Hello, Ana. Aquí estás combinando template literals con this para concatenar el saludo con el nombre que recibió el constructor. Si cambias el argumento, cambia la salida. Esa es la magia de instanciar con datos distintos.
¿Qué son los getters y setters en una clase de JavaScript?
Los getters y setters son palabras reservadas que te permiten leer y modificar propiedades de una instancia con una sintaxis controlada [13:40]. El get obtiene el valor y el set lo reasigna.
javascript
class User {
constructor(name, age) {
this.name = name;
this.age = age;
}
speak() {
return "Hello";
}
greeting() {
return ${this.speak()}, ${this.name};
}
get youAge() {
return this.age;
}
set youAge(n) {
this.age = n;
}
}
const developer1 = new User("David", 15); console.log(developer1.youAge); developer1.youAge = 20; console.log(developer1.youAge);
En la primera lectura obtienes 15, el valor inicial. Después usas el setter para cambiarlo a 20 sin invocar youAge como función: lo asignas con = como si fuera una propiedad. Esa es la diferencia con un método normal.
¿Cuándo usar un getter en lugar de un método? Cuando quieras leer un valor como propiedad sin paréntesis. El getter mejora la legibilidad y oculta lógica interna detrás de algo que parece un atributo simple.
¿Por qué obtengo un error si declaro dos veces la misma constante?
Porque el scope de bloque lo impide. Si ya declaraste const developer antes en el mismo archivo, no puedes volver a declararla con el mismo nombre. Cambia el nombre o reorganiza el código.
Un detalle práctico: cuando copies y pegues bloques de código entre ejemplos, revisa siempre que las llaves de cierre y los paréntesis estén completos. Un error de copia puede romper toda la clase y tomarte minutos detectarlo.
Con constructores, métodos, this, getters y setters tienes el set completo para sacarle provecho a la herencia en JavaScript. ¿Qué parte te costó más entender la primera vez? Cuéntalo en los comentarios.