JavaScript de Cero a Experto / Objetos
Métodos y this: objetos que hacen cosas
En el reto del módulo 3, crearBolsillo devolvía UNA función. Te dejamos una
promesa: para devolver varias operaciones juntas (gastar, recargar,
consultar) hacían falta los objetos. Hoy la cumplimos: un método es una
función que vive DENTRO de un objeto, y this es cómo esa función habla de
"sí misma".
Datos + botones
El bolsillo completo
Fíjate en tres cosas. Uno: la sintaxis corta gastar(monto) { ... } dentro
del objeto (equivale a gastar: function (monto) { ... }, pero nadie escribe
la larga hoy). Dos: this.saldo — el método no recibe el saldo por
parámetro, lo lee de SU objeto. Tres: los datos y las operaciones que los
manejan viven JUNTOS: eso se llama encapsular, y es la semilla de la
programación orientada a objetos (módulo 11).
La trampa: arrow functions como métodos
Las arrow functions NO tienen this propio — lo heredan de donde fueron
escritas. Como método de un objeto, eso las rompe:
Regla simple para memorizar hoy: métodos con la sintaxis corta
nombre() { }, nunca con arrow. Las arrows siguen siendo perfectas para
los callbacks de map, filter y compañía — justamente PORQUE no traen un
this propio que interfiera. El porqué profundo lo veremos en el módulo de
POO; por ahora, la regla te salva.
Tienes dos objetos, cuentaA y cuentaB, ambos con un método retirar() que usa this.saldo. Llamas cuentaB.retirar(). ¿Qué saldo modifica?
Mini-reto
Amplía el bolsillo del playground con dos métodos: resumen(), que imprima
una frase con el titular y el saldo usando this, y puedeComprar(monto),
que devuelva true o false comparando contra this.saldo (sin modificar
nada). Pruébalos antes y después de un par de gastar.
Qué sigue
Ya creas objetos con datos y acciones. Pero al USARLOS notarás algo
repetitivo: escribir gasto.nombre, gasto.valor, gasto.categoria una y
otra vez. La próxima lección trae el destructuring: desempacar las
propiedades de un objeto en variables sueltas, en una sola línea.