En JavaScript, this
es una palabra clave muy utilizada y comprendida a veces de manera incorrecta. No es un concepto sencillo, pero esencial para entender ciertos aspectos del lenguaje. En el contexto de un método de JavaScript, this
se refiere al objeto que llama al método.
Por supuesto, esto puede cambiar en diferentes situaciones dependiendo del modo en que se llame a la función. Pero en un escenario típico donde un método de un objeto está siendo llamado, this
representará a ese objeto. Vamos a ver un ejemplo práctico para entender mejor cómo funciona.
let estudiante = {
nombre: 'Juan',
presentarse: function() {
console.log(`Hola, mi nombre es ${this.nombre}`);
}
};
estudiante.presentarse(); //Output: Hola, mi nombre es Juan
En este ejemplo, this
dentro del método presentarse()
se refiere al objeto estudiante
, por eso podemos acceder a la propiedad nombre
de estudiante
.
Es importante notar que el valor de this
se define en el tiempo de ejecución. No está determinado por cómo o dónde se definió una función, sino cómo se llama. Esto puede llevar a errores si no se utiliza correctamente.
Existen maneras para cambiar el valor de this
en JavaScript. Los métodos call()
, apply()
, y bind()
son usados para esto. De la misma manera, las funciones de flecha no crean su propio this
, ellas capturan el this
del contexto donde están definidas.
Finalmente, es vital entender que this
no se refiere a la función misma, al objeto global o al objeto del documento, como se podría pensar en otros contextos. En el contexto de un método de JavaScript, this
se refiere al objeto que llamó al método. Este es uno de los conceptos más fundamentales de la programación orientada a objetos en JavaScript.