CodeForge

JavaScript de Cero a Experto / Objetos

Métodos y this: objetos que hacen cosas

Teoría20 min20 XP

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.