
Crear clases, entender `this`, usar getters/setters y encapsular datos.
Sintaxis de clases ES6
- Clases e instancias: Una clase define el molde; una instancia es un objeto creado con
new. - Constructor: Inicializa propiedades y estado.
- Métodos de instancia: Operan sobre los datos del objeto.
- Métodos estáticos: Funciones de utilidad que no dependen de una instancia.
javascript1class Persona { 2 constructor(nombre, edad) { 3 this.nombre = nombre; 4 this.edad = edad; 5 } 6 saludar() { 7 console.log(`Hola, soy ${this.nombre}`); 8 } 9}
this y binding
- this depende del contexto de llamada.
- Con
bind,callyapplypuedes controlar el contexto. - Las arrow functions heredan
thisdel entorno.
Getters y setters
- Permiten validar y controlar acceso a propiedades.
- Útiles para encapsulación y propiedades calculadas.
javascript1class Rectangulo { 2 constructor(ancho, alto) { 3 this._ancho = ancho; 4 this._alto = alto; 5 } 6 get area() { return this._ancho * this._alto; } 7 set ancho(valor) { 8 if (valor <= 0) throw new Error("Ancho inválido"); 9 this._ancho = valor; 10 } 11}
Ejemplos de Código
3 ejemplos
Método estático
javascript
1class Producto {
2 constructor(nombre, precio) {
3 this.nombre = nombre;
4 this.precio = precio;
5 }
6 static comparar(a, b) {
7 return a.precio - b.precio;
8 }
9}Arrow con this
javascript
1class Boton {
2 constructor(label) {
3 this.label = label;
4 this.clicks = 0;
5 }
6 onClick = () => {
7 this.clicks++;
8 console.log(`${this.label}: ${this.clicks}`);
9 };
10}Propiedad calculada
javascript
1class Producto {
2 constructor(precio, descuento) {
3 this.precio = precio;
4 this.descuento = descuento;
5 }
6 get precioFinal() {
7 return this.precio * (1 - this.descuento);
8 }
9}Recursos
3 recursos disponibles
¡Hora de Practicar!
PrácticaIntermedio15 min
Práctica guiada - Sistema de tareas
Práctica
Implementar clases Tarea y ListaTareas con getters, setters y métodos de estado.
Desafío de Código
EjercicioIntermedio15 min
Ejercicios - Clases y validación
Ejercicios
(1) Crear clase Estudiante con métodos, (2) validación con setters, (3) promedio de calificaciones.