Comprender cómo funciona this dentro de una clase es fundamental para trabajar con programación orientada a objetos en JavaScript. Esta palabra reservada permite que cada instancia creada a partir de una clase tenga sus propias propiedades y métodos, haciendo posible construir múltiples objetos con valores distintos a partir de un mismo molde.
¿Qué significa la palabra reservada this?
This es una palabra reservada que hace referencia al objeto mismo o a la clase que se está construyendo [0:10]. Cuando trabajamos con clases, estas funcionan como un molde para crear diferentes instancias que se convierten en objetos. La función de this es conectar los parámetros que recibe el constructor con las propiedades que tendrá cada objeto creado.
Dentro del método constructor, que es el método especial que vive dentro de la clase, this permite que los valores inyectados al momento de crear una instancia queden almacenados como propiedades del objeto resultante [1:00].
¿Cómo se usa this dentro de una clase?
El ejemplo práctico parte de crear una clase llamada persona con un constructor que recibe dos parámetros: nombre y edad [1:15].
javascript
class persona {
constructor(nombre, edad) {
this.nombre = nombre;
this.edad = edad;
}
}
this.nombre = nombre asigna el valor recibido como parámetro a la propiedad nombre del objeto.
this.edad = edad hace lo mismo con la propiedad edad.
La traducción directa sería: el nombre de nuestro objeto persona va a ser el valor que se coloque en la instancia [2:30].
¿Cómo se crea una instancia con new?
Para generar un objeto a partir de la clase se utiliza la palabra reservada new, que toma los valores proporcionados y los inyecta en los parámetros del constructor [1:45].
javascript
const persona1 = new persona("Alice", 25);
console.log(persona1);
Al imprimir persona1, el resultado muestra un objeto con las propiedades nombre y edad ya asignadas [2:50]. La palabra new es la que activa el constructor y permite que this haga su trabajo de vincular cada valor con su propiedad correspondiente.
¿Cómo funciona this en métodos de una instancia?
También es posible agregar un método directamente a una instancia específica y dentro de ese método utilizar this para acceder a las propiedades del objeto [3:10].
javascript
persona1.nuevoMetodo = function() {
console.log(Mi nombre es ${this.nombre});
};
persona1.nuevoMetodo();
- El resultado impreso es: "Mi nombre es Alice".
- Aquí this hace referencia a la instancia
persona1, que ya tiene asignado el nombre "Alice" [3:40].
Este comportamiento demuestra que this no es estático: siempre apunta al objeto sobre el cual se está ejecutando el código en ese momento.
¿Por qué es importante dominar this en JavaScript?
Sin this, no habría forma de que cada instancia conserve sus propios valores. Es el mecanismo que permite que una clase funcione como molde reutilizable, generando objetos únicos con propiedades independientes. Cada vez que se trabaja con clases o funciones constructoras, this es la pieza que conecta la definición abstracta del molde con los datos concretos de cada objeto.
Si ya has trabajado con instancias y quieres profundizar, prueba crear varias personas con distintos valores y agregar métodos que utilicen this para manipular sus propiedades. Comparte en los comentarios cómo te fue con la práctica.